diff --git a/.buildkite/ftr_configs.yml b/.buildkite/ftr_configs.yml index cd0c62dd4c5e6..f033a9032526d 100644 --- a/.buildkite/ftr_configs.yml +++ b/.buildkite/ftr_configs.yml @@ -91,9 +91,6 @@ disabled: - x-pack/test_serverless/api_integration/test_suites/security/config.feature_flags.ts - x-pack/test_serverless/functional/test_suites/security/config.feature_flags.ts - # Failing: See https://github.com/elastic/kibana/issues/174020 - - x-pack/test/api_integration/apis/asset_manager/config_when_enabled.ts - defaultQueue: 'n2-4-spot' enabled: - test/accessibility/config.ts @@ -188,6 +185,7 @@ enabled: - x-pack/test/api_integration/config_security_trial.ts - x-pack/test/api_integration/apis/aiops/config.ts - x-pack/test/api_integration/apis/asset_manager/config_when_disabled.ts + - x-pack/test/api_integration/apis/asset_manager/config_when_enabled.ts - x-pack/test/api_integration/apis/cases/config.ts - x-pack/test/api_integration/apis/cloud_security_posture/config.ts - x-pack/test/api_integration/apis/console/config.ts @@ -216,6 +214,7 @@ enabled: - x-pack/test/api_integration/apis/stats/config.ts - x-pack/test/api_integration/apis/status/config.ts - x-pack/test/api_integration/apis/synthetics/config.ts + - x-pack/test/api_integration/apis/slos/config.ts - x-pack/test/api_integration/apis/telemetry/config.ts - x-pack/test/api_integration/apis/transform/config.ts - x-pack/test/api_integration/apis/upgrade_assistant/config.ts @@ -292,6 +291,7 @@ enabled: - x-pack/test/functional/apps/lens/open_in_lens/dashboard/config.ts - x-pack/test/functional/apps/license_management/config.ts - x-pack/test/functional/apps/logstash/config.ts + - x-pack/test/functional/apps/managed_content/config.ts - x-pack/test/functional/apps/management/config.ts - x-pack/test/functional/apps/maps/group1/config.ts - x-pack/test/functional/apps/maps/group2/config.ts @@ -416,6 +416,7 @@ enabled: - x-pack/test_serverless/api_integration/test_suites/security/common_configs/config.group1.ts - x-pack/test_serverless/functional/test_suites/observability/config.ts - x-pack/test_serverless/functional/test_suites/observability/config.examples.ts + - x-pack/test_serverless/functional/test_suites/observability/config.saved_objects_management.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group1.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group2.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group3.ts @@ -423,9 +424,11 @@ enabled: - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group5.ts - x-pack/test_serverless/functional/test_suites/observability/common_configs/config.group6.ts - x-pack/test_serverless/functional/test_suites/observability/config.screenshots.ts + - x-pack/test_serverless/functional/test_suites/security/config.screenshots.ts - x-pack/test_serverless/functional/test_suites/search/config.ts - x-pack/test_serverless/functional/test_suites/search/config.examples.ts - x-pack/test_serverless/functional/test_suites/search/config.screenshots.ts + - x-pack/test_serverless/functional/test_suites/search/config.saved_objects_management.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group1.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group2.ts - x-pack/test_serverless/functional/test_suites/search/common_configs/config.group3.ts @@ -435,6 +438,7 @@ enabled: - x-pack/test_serverless/functional/test_suites/security/config.ts - x-pack/test_serverless/functional/test_suites/security/config.examples.ts - x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts + - x-pack/test_serverless/functional/test_suites/security/config.saved_objects_management.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group1.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group2.ts - x-pack/test_serverless/functional/test_suites/security/common_configs/config.group3.ts @@ -458,6 +462,7 @@ enabled: - x-pack/performance/journeys/tags_listing_page.ts - x-pack/performance/journeys/cloud_security_dashboard.ts - x-pack/performance/journeys/apm_service_inventory.ts + - x-pack/performance/journeys/infra_hosts_view.ts - x-pack/test/custom_branding/config.ts - x-pack/test/profiling_api_integration/cloud/config.ts - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/exceptions/workflows/configs/serverless.config.ts @@ -496,6 +501,8 @@ enabled: - x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/telemetry/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/detection_engine/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/detection_engine/configs/ess.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/serverless.config.ts + - x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/default_license/exception_lists_items/configs/serverless.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/default_license/exception_lists_items/configs/ess.config.ts - x-pack/test/security_solution_api_integration/test_suites/lists_and_exception_lists/default_license/lists_items/configs/serverless.config.ts 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 c2cec6e285031..bf2aaac56af24 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 @@ -218,6 +218,12 @@ export async function pickTestGroupRunOrder() { if (Number.isNaN(FTR_CONFIGS_RETRY_COUNT)) { throw new Error(`invalid FTR_CONFIGS_RETRY_COUNT: ${process.env.FTR_CONFIGS_RETRY_COUNT}`); } + const JEST_CONFIGS_RETRY_COUNT = process.env.JEST_CONFIGS_RETRY_COUNT + ? parseInt(process.env.JEST_CONFIGS_RETRY_COUNT, 10) + : 1; + if (Number.isNaN(JEST_CONFIGS_RETRY_COUNT)) { + throw new Error(`invalid JEST_CONFIGS_RETRY_COUNT: ${process.env.JEST_CONFIGS_RETRY_COUNT}`); + } const FTR_CONFIGS_DEPS = process.env.FTR_CONFIGS_DEPS !== undefined @@ -417,10 +423,10 @@ export async function pickTestGroupRunOrder() { }, retry: { automatic: [ - { - exit_status: '-1', - limit: 3, - }, + { exit_status: '-1', limit: 3 }, + ...(JEST_CONFIGS_RETRY_COUNT > 0 + ? [{ exit_status: '*', limit: JEST_CONFIGS_RETRY_COUNT }] + : []), ], }, } @@ -437,10 +443,10 @@ export async function pickTestGroupRunOrder() { }, retry: { automatic: [ - { - exit_status: '-1', - limit: 3, - }, + { exit_status: '-1', limit: 3 }, + ...(JEST_CONFIGS_RETRY_COUNT > 0 + ? [{ exit_status: '*', limit: JEST_CONFIGS_RETRY_COUNT }] + : []), ], }, } diff --git a/.buildkite/pipelines/artifacts.yml b/.buildkite/pipelines/artifacts.yml index ccef23374d91b..6f5d989f1a3a5 100644 --- a/.buildkite/pipelines/artifacts.yml +++ b/.buildkite/pipelines/artifacts.yml @@ -51,16 +51,6 @@ steps: - exit_status: '*' limit: 1 - - command: KIBANA_DOCKER_CONTEXT=ubi8 .buildkite/scripts/steps/artifacts/docker_context.sh - label: 'Docker Context Verification' - agents: - queue: n2-2 - timeout_in_minutes: 30 - retry: - automatic: - - exit_status: '*' - limit: 1 - - command: KIBANA_DOCKER_CONTEXT=ubi .buildkite/scripts/steps/artifacts/docker_context.sh label: 'Docker Context Verification' agents: diff --git a/.buildkite/pipelines/flaky_tests/pipeline.ts b/.buildkite/pipelines/flaky_tests/pipeline.ts index 1d12b2c840744..34f6e41297861 100644 --- a/.buildkite/pipelines/flaky_tests/pipeline.ts +++ b/.buildkite/pipelines/flaky_tests/pipeline.ts @@ -143,11 +143,9 @@ for (const testSuite of testSuites) { }, depends_on: 'build', timeout_in_minutes: 150, + cancel_on_build_failing: true, retry: { - automatic: [ - { exit_status: '-1', limit: 3 }, - // { exit_status: '*', limit: 1 }, - ], + automatic: [{ exit_status: '-1', limit: 3 }], }, }); continue; @@ -168,10 +166,15 @@ for (const testSuite of testSuites) { label: group.name, agents: { queue: agentQueue }, depends_on: 'build', + timeout_in_minutes: 150, parallelism: testSuite.count, concurrency, concurrency_group: process.env.UUID, concurrency_method: 'eager', + cancel_on_build_failing: true, + retry: { + automatic: [{ exit_status: '-1', limit: 3 }], + }, env: { // disable split of test cases between parallel jobs when running them in flaky test runner // by setting chunks vars to value 1, which means all test will run in one job diff --git a/.buildkite/pipelines/on_merge.yml b/.buildkite/pipelines/on_merge.yml index 27b48e0d18d4b..2841dce49bb26 100644 --- a/.buildkite/pipelines/on_merge.yml +++ b/.buildkite/pipelines/on_merge.yml @@ -337,6 +337,16 @@ steps: - exit_status: '-1' limit: 3 + - command: .buildkite/scripts/steps/quick_checks.sh + label: 'Quick Checks' + agents: + queue: n2-2-spot + timeout_in_minutes: 60 + retry: + automatic: + - exit_status: '-1' + limit: 3 + - command: .buildkite/scripts/steps/checks.sh label: 'Checks' agents: diff --git a/.buildkite/pipelines/performance/daily.yml b/.buildkite/pipelines/performance/daily.yml index b1a53babb03ac..8a28ed2a561c3 100644 --- a/.buildkite/pipelines/performance/daily.yml +++ b/.buildkite/pipelines/performance/daily.yml @@ -21,11 +21,11 @@ steps: queue: kb-static-ubuntu depends_on: build key: tests - timeout_in_minutes: 60 + timeout_in_minutes: 90 retry: automatic: - exit_status: '-1' - limit: 3 + limit: 2 - exit_status: '*' limit: 1 diff --git a/.buildkite/pipelines/pipeline.kibana-serverless-release.yaml b/.buildkite/pipelines/pipeline.kibana-serverless-release.yaml index 84dae4c24db48..d96ae53bed5b9 100644 --- a/.buildkite/pipelines/pipeline.kibana-serverless-release.yaml +++ b/.buildkite/pipelines/pipeline.kibana-serverless-release.yaml @@ -7,9 +7,6 @@ steps: env: SERVICE_COMMIT_HASH: "${BUILDKITE_COMMIT:0:12}" REMOTE_SERVICE_CONFIG: https://raw.githubusercontent.com/elastic/serverless-gitops/main/gen/gpctl/kibana/config.yaml - SERVICE: kibana-controller - NAMESPACE: kibana-ci - IMAGE_NAME: kibana-serverless notify: - slack: "#kibana-mission-control" diff --git a/.buildkite/pipelines/pull_request/base.yml b/.buildkite/pipelines/pull_request/base.yml index 03019a107df9e..718a7b2a32031 100644 --- a/.buildkite/pipelines/pull_request/base.yml +++ b/.buildkite/pipelines/pull_request/base.yml @@ -19,17 +19,18 @@ steps: - exit_status: '-1' limit: 3 - - command: .buildkite/scripts/steps/build_api_docs.sh - label: 'Check Types and Build API Docs' + - command: .buildkite/scripts/steps/quick_checks.sh + label: 'Quick Checks' agents: - queue: n2-4-spot - key: build_api_docs + queue: n2-2-spot timeout_in_minutes: 60 retry: automatic: - exit_status: '-1' limit: 3 + - wait + - command: .buildkite/scripts/steps/ci_stats_ready.sh label: Mark CI Stats as ready agents: @@ -57,54 +58,6 @@ steps: - exit_status: '*' limit: 1 - - command: .buildkite/scripts/steps/functional/threat_intelligence.sh - label: 'Threat Intelligence Cypress Tests' - agents: - queue: n2-4-spot - depends_on: build - timeout_in_minutes: 60 - parallelism: 2 - retry: - automatic: - - exit_status: '*' - limit: 1 - - - command: .buildkite/scripts/steps/functional/osquery_cypress.sh - label: 'Osquery Cypress Tests' - agents: - queue: n2-4-spot - depends_on: build - timeout_in_minutes: 60 - parallelism: 6 - retry: - automatic: - - exit_status: '*' - limit: 1 - - - command: .buildkite/scripts/steps/functional/security_serverless_osquery.sh - label: 'Serverless Osquery Cypress Tests' - agents: - queue: n2-4-spot - depends_on: build - timeout_in_minutes: 60 - parallelism: 6 - retry: - automatic: - - exit_status: '*' - limit: 1 - - # status_exception: Native role management is not enabled in this Elasticsearch instance - # - command: .buildkite/scripts/steps/functional/security_serverless_defend_workflows.sh - # label: 'Serverless Security Defend Workflows Cypress Tests' - # agents: - # queue: n2-4-spot - # depends_on: build - # timeout_in_minutes: 60 - # retry: - # automatic: - # - exit_status: '*' - # limit: 1 - - command: .buildkite/scripts/steps/lint.sh label: 'Linting' agents: @@ -136,3 +89,14 @@ steps: automatic: - exit_status: '-1' limit: 3 + + - command: .buildkite/scripts/steps/build_api_docs.sh + label: 'Check Types and Build API Docs' + agents: + queue: n2-4-spot + key: build_api_docs + timeout_in_minutes: 60 + retry: + automatic: + - exit_status: '-1' + limit: 3 diff --git a/.buildkite/pipelines/pull_request/security_solution/defend_workflows.yml b/.buildkite/pipelines/pull_request/security_solution/defend_workflows.yml index 29d90461b04d5..248d953c485e6 100644 --- a/.buildkite/pipelines/pull_request/security_solution/defend_workflows.yml +++ b/.buildkite/pipelines/pull_request/security_solution/defend_workflows.yml @@ -22,3 +22,15 @@ steps: automatic: - exit_status: '*' limit: 1 + + # status_exception: Native role management is not enabled in this Elasticsearch instance + # - command: .buildkite/scripts/steps/functional/security_serverless_defend_workflows.sh + # label: 'Serverless Security Defend Workflows Cypress Tests' + # agents: + # queue: n2-4-spot + # depends_on: build + # timeout_in_minutes: 60 + # retry: + # automatic: + # - exit_status: '*' + # limit: 1 diff --git a/.buildkite/pipelines/pull_request/security_solution/osquery_cypress.yml b/.buildkite/pipelines/pull_request/security_solution/osquery_cypress.yml new file mode 100644 index 0000000000000..b969a468c81bc --- /dev/null +++ b/.buildkite/pipelines/pull_request/security_solution/osquery_cypress.yml @@ -0,0 +1,24 @@ +steps: + - command: .buildkite/scripts/steps/functional/osquery_cypress.sh + label: 'Osquery Cypress Tests' + agents: + queue: n2-4-spot + depends_on: build + timeout_in_minutes: 60 + parallelism: 6 + retry: + automatic: + - exit_status: '*' + limit: 1 + + - command: .buildkite/scripts/steps/functional/security_serverless_osquery.sh + label: 'Serverless Osquery Cypress Tests' + agents: + queue: n2-4-spot + depends_on: build + timeout_in_minutes: 60 + parallelism: 6 + retry: + automatic: + - exit_status: '*' + limit: 1 diff --git a/.buildkite/pipelines/pull_request/security_solution/threat_intelligence.yml b/.buildkite/pipelines/pull_request/security_solution/threat_intelligence.yml new file mode 100644 index 0000000000000..6a82abe46eee1 --- /dev/null +++ b/.buildkite/pipelines/pull_request/security_solution/threat_intelligence.yml @@ -0,0 +1,12 @@ +steps: + - command: .buildkite/scripts/steps/functional/threat_intelligence.sh + label: 'Threat Intelligence Cypress Tests' + agents: + queue: n2-4-spot + depends_on: build + timeout_in_minutes: 60 + parallelism: 2 + retry: + automatic: + - exit_status: '*' + limit: 1 diff --git a/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml b/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml index 7cdc07ec861f2..a1de7f41a2100 100644 --- a/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml +++ b/.buildkite/pipelines/quality-gates/pipeline.tests-production.yaml @@ -27,6 +27,11 @@ steps: - label: ":cookie: 24h bake time before continuing promotion" if: build.env("ENVIRONMENT") == "production-canary" command: "sleep 86400" + soft_fail: + # A manual cancel of that step produces return code 255. + # We're treating this case as a soft fail to allow manual bake time skipping. + # To stop the promotion entirely, instead click the "Cancel" button at the top of the page + - exit_status: 255 agents: # How long can this agent live for in minutes - 25 hours instanceMaxAge: 1500 diff --git a/.buildkite/pipelines/quality-gates/pipeline.tests-qa.yaml b/.buildkite/pipelines/quality-gates/pipeline.tests-qa.yaml index 2ee943d72ee03..96ef648a352df 100644 --- a/.buildkite/pipelines/quality-gates/pipeline.tests-qa.yaml +++ b/.buildkite/pipelines/quality-gates/pipeline.tests-qa.yaml @@ -11,6 +11,7 @@ steps: ENVIRONMENT: ${ENVIRONMENT} EC_ENV: qa EC_REGION: aws-eu-west-1 + RETRY_TESTS_ON_FAIL: "true" message: "${BUILDKITE_MESSAGE} (triggered by pipeline.tests-qa.yaml)" # TODO: Uncomment this code when the integration is ready. diff --git a/.buildkite/pipelines/quality-gates/pipeline.tests-staging.yaml b/.buildkite/pipelines/quality-gates/pipeline.tests-staging.yaml index 6b450aad7553e..2b74ee24165dc 100644 --- a/.buildkite/pipelines/quality-gates/pipeline.tests-staging.yaml +++ b/.buildkite/pipelines/quality-gates/pipeline.tests-staging.yaml @@ -19,6 +19,7 @@ steps: ENVIRONMENT: ${ENVIRONMENT} EC_ENV: staging EC_REGION: aws-us-east-1 + RETRY_TESTS_ON_FAIL: "true" message: "${BUILDKITE_MESSAGE} (triggered by pipeline.tests-staging.yaml)" - wait: ~ diff --git a/.buildkite/pipelines/security_solution/security_solution_cypress.yml b/.buildkite/pipelines/security_solution/security_solution_cypress.yml index 58e505927b95c..f6fce93c56614 100644 --- a/.buildkite/pipelines/security_solution/security_solution_cypress.yml +++ b/.buildkite/pipelines/security_solution/security_solution_cypress.yml @@ -1,16 +1,4 @@ steps: - - command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless - label: 'Serverless MKI QA Security Cypress Tests' - agents: - queue: n2-4-spot - # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. - timeout_in_minutes: 300 - parallelism: 6 - retry: - automatic: - - exit_status: '*' - limit: 1 - - command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:explore label: 'Serverless MKI QA Explore - Security Solution Cypress Tests' agents: @@ -53,7 +41,7 @@ steps: queue: n2-4-spot # TODO : Revise the timeout when the pipeline will be officially integrated with the quality gate. timeout_in_minutes: 300 - parallelism: 6 + parallelism: 2 retry: automatic: - exit_status: '*' @@ -93,7 +81,7 @@ steps: retry: automatic: - exit_status: '*' - limit: 1 + limit: 1 - command: .buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh cypress:run:qa:serverless:entity_analytics label: 'Serverless MKI QA Entity Analytics - Security Solution Cypress Tests' @@ -105,4 +93,4 @@ steps: retry: automatic: - exit_status: '*' - limit: 1 \ No newline at end of file + limit: 1 \ No newline at end of file diff --git a/.buildkite/scripts/common/util.sh b/.buildkite/scripts/common/util.sh index 55581b6d5d6e2..f80c89678c221 100755 --- a/.buildkite/scripts/common/util.sh +++ b/.buildkite/scripts/common/util.sh @@ -171,33 +171,47 @@ download_artifact() { retry 3 1 timeout 3m buildkite-agent artifact download "$@" } +# TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done +if [[ "${VAULT_ADDR:-}" == *"secrets.elastic.co"* ]]; then + VAULT_PATH_PREFIX="secret/kibana-issues/dev" + VAULT_KV_PREFIX="secret/kibana-issues/dev" + IS_LEGACY_VAULT_ADDR=true +else + VAULT_PATH_PREFIX="secret/ci/elastic-kibana" + VAULT_KV_PREFIX="kv/ci-shared/kibana-deployments" + IS_LEGACY_VAULT_ADDR=false +fi +export IS_LEGACY_VAULT_ADDR vault_get() { - path=$1 + key_path=$1 field=$2 - fullPath="secret/ci/elastic-kibana/$path" - if [[ "$VAULT_ADDR" == *"secrets.elastic.co"* ]]; then - fullPath="secret/kibana-issues/dev/$path" - fi + fullPath="$VAULT_PATH_PREFIX/$key_path" - if [[ -z "${2:-}" ]]; then - retry 5 5 vault read "$fullPath" + if [[ -z "${2:-}" || "${2:-}" =~ ^-.* ]]; then + retry 5 5 vault read "$fullPath" "${@:2}" else - retry 5 5 vault read -field="$field" "$fullPath" + retry 5 5 vault read -field="$field" "$fullPath" "${@:3}" fi } vault_set() { - path=$1 + key_path=$1 shift fields=("$@") - fullPath="secret/ci/elastic-kibana/$path" - if [[ "$VAULT_ADDR" == *"secrets.elastic.co"* ]]; then - fullPath="secret/kibana-issues/dev/$path" - fi + + fullPath="$VAULT_PATH_PREFIX/$key_path" # shellcheck disable=SC2068 retry 5 5 vault write "$fullPath" ${fields[@]} } + +vault_kv_set() { + kv_path=$1 + shift + fields=("$@") + + vault kv put "$VAULT_KV_PREFIX/$kv_path" "${fields[@]}" +} diff --git a/.buildkite/scripts/lifecycle/pre_command.sh b/.buildkite/scripts/lifecycle/pre_command.sh index 9b19e5e82da84..c14cb2c578a8a 100755 --- a/.buildkite/scripts/lifecycle/pre_command.sh +++ b/.buildkite/scripts/lifecycle/pre_command.sh @@ -142,6 +142,15 @@ export SYNTHETICS_REMOTE_KIBANA_URL DEPLOY_TAGGER_SLACK_WEBHOOK_URL=${DEPLOY_TAGGER_SLACK_WEBHOOK_URL:-"$(vault_get kibana-serverless-release-tools DEPLOY_TAGGER_SLACK_WEBHOOK_URL)"} export DEPLOY_TAGGER_SLACK_WEBHOOK_URL +GCS_SA_CDN_QA_KEY="$(vault_get gcs-sa-cdn-qa key)" +export GCS_SA_CDN_QA_KEY + +GCS_SA_CDN_QA_EMAIL="$(vault_get gcs-sa-cdn-qa email)" +export GCS_SA_CDN_QA_EMAIL + +GCS_SA_CDN_QA_BUCKET="$(vault_get gcs-sa-cdn-qa bucket)" +export GCS_SA_CDN_QA_BUCKET + # Setup Failed Test Reporter Elasticsearch credentials { TEST_FAILURES_ES_CLOUD_ID=$(vault_get failed_tests_reporter_es cloud_id) diff --git a/.buildkite/scripts/pipelines/pull_request/pipeline.ts b/.buildkite/scripts/pipelines/pull_request/pipeline.ts index ca0a83616492e..07bd9472f5242 100644 --- a/.buildkite/scripts/pipelines/pull_request/pipeline.ts +++ b/.buildkite/scripts/pipelines/pull_request/pipeline.ts @@ -88,7 +88,10 @@ const uploadPipeline = (pipelineContent: string | object) => { } if ( - (await doAnyChangesMatch([/^x-pack\/plugins\/observability_onboarding/])) || + (await doAnyChangesMatch([ + /^x-pack\/plugins\/observability_onboarding/, + /^x-pack\/plugins\/fleet/, + ])) || GITHUB_PR_LABELS.includes('ci:all-cypress-suites') ) { pipeline.push( @@ -265,6 +268,47 @@ const uploadPipeline = (pipelineContent: string | object) => { ); } + if ( + (await doAnyChangesMatch([ + /^package.json/, + /^src\/plugins\/data/, + /^src\/plugins\/kibana_utils/, + /^src\/plugins\/inspector/, + /^src\/plugins\/data_views/, + /^src\/core/, + /^packages\/kbn-securitysolution-.*/, + /^packages\/kbn-es-query/, + /^packages\/kbn-securitysolution-io-ts-list-types/, + /^packages\/kbn-i18n-react/, + /^packages\/kbn-i18n/, + /^packages\/shared-ux/, + /^packages\/kbn-doc-links/, + /^packages\/kbn-securitysolution-io-ts-list-types/, + /^x-pack\/plugins\/threat_intelligence/, + /^x-pack\/packages\/security-solution/, + /^x-pack\/test\/threat_intelligence_cypress/, + /^x-pack\/plugins\/cases/, + /^x-pack\/plugins\/timelines/, + /^x-pack\/plugins\/triggers_actions_ui/, + /^x-pack\/plugins\/rule_registry/, + ])) || + GITHUB_PR_LABELS.includes('ci:all-cypress-suites') + ) { + pipeline.push( + getPipeline('.buildkite/pipelines/pull_request/security_solution/threat_intelligence.yml') + ); + } + + if ( + ((await doAnyChangesMatch([/^x-pack\/plugins\/osquery/, /^x-pack\/test\/osquery_cypress/])) || + GITHUB_PR_LABELS.includes('ci:all-cypress-suites')) && + !GITHUB_PR_LABELS.includes('ci:skip-cypress-osquery') + ) { + pipeline.push( + getPipeline('.buildkite/pipelines/pull_request/security_solution/osquery_cypress.yml') + ); + } + pipeline.push(getPipeline('.buildkite/pipelines/pull_request/post_build.yml')); // remove duplicated steps diff --git a/.buildkite/scripts/pipelines/security_solution_ess/pipeline.sh b/.buildkite/scripts/pipelines/security_solution_ess/pipeline.sh new file mode 100755 index 0000000000000..c21d9cea0b87f --- /dev/null +++ b/.buildkite/scripts/pipelines/security_solution_ess/pipeline.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +set -euo pipefail + +echo "Inside the security solution pipeline" \ No newline at end of file diff --git a/.buildkite/scripts/pipelines/security_solution_quality_gate/api-integration-tests.sh b/.buildkite/scripts/pipelines/security_solution_quality_gate/api-integration-tests.sh index 9a8841b5ac908..1e809b6da6fc4 100755 --- a/.buildkite/scripts/pipelines/security_solution_quality_gate/api-integration-tests.sh +++ b/.buildkite/scripts/pipelines/security_solution_quality_gate/api-integration-tests.sh @@ -14,7 +14,7 @@ echo "--- Serverless Security Second Quality Gate" cd x-pack/test/security_solution_api_integration set +e -QA_API_KEY=$(vault_get security-solution-qg-enc-key qa_api_key) +QA_API_KEY=$(vault_get security-solution-quality-gate qa_api_key) # Generate a random 5-digit number random_number=$((10000 + $RANDOM % 90000)) diff --git a/.buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh b/.buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh index 9d353b167ea47..e4b1701f161eb 100755 --- a/.buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh +++ b/.buildkite/scripts/pipelines/security_solution_quality_gate/security_solution_cypress/mki_security_solution_cypress.sh @@ -17,11 +17,12 @@ export JOB=kibana-security-solution-chrome buildkite-agent meta-data set "${BUILDKITE_JOB_ID}_is_test_execution_step" "true" mkdir .ftr -retry 5 5 vault kv get -format=json -field=data secret/kibana-issues/dev/security-quality-gate/role-users > .ftr/role_users.json +vault_get security-quality-gate/role-users data -format=json > .ftr/role_users.json cd x-pack/test/security_solution_cypress set +e -QA_API_KEY=$(vault_get security-solution-qg-enc-key qa_api_key) +QA_API_KEY=$(vault_get security-solution-quality-gate qa_api_key) +BK_ANALYTICS_API_KEY=$(vault_get security-solution-quality-gate serverless-sec-sol-cypress-bk-api-key) -CLOUD_QA_API_KEY=$QA_API_KEY yarn $1; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY CLOUD_QA_API_KEY=$QA_API_KEY yarn $1; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/serverless/create_deploy_tag/info_sections/so_snapshot_comparison.ts b/.buildkite/scripts/serverless/create_deploy_tag/info_sections/so_snapshot_comparison.ts index 19917730cca0c..61acda12cd1e9 100644 --- a/.buildkite/scripts/serverless/create_deploy_tag/info_sections/so_snapshot_comparison.ts +++ b/.buildkite/scripts/serverless/create_deploy_tag/info_sections/so_snapshot_comparison.ts @@ -11,12 +11,15 @@ import { readFileSync } from 'fs'; import { exec } from '../shared'; import { BuildkiteClient, getKibanaDir } from '#pipeline-utils'; +type VersionChanges = Record; + export function compareSOSnapshots( previousSha: string, selectedSha: string ): null | { hasChanges: boolean; changed: string[]; + versionChanges: VersionChanges; command: string; } { assertValidSha(previousSha); @@ -33,9 +36,15 @@ export function compareSOSnapshots( const buildkite = new BuildkiteClient({ exec }); buildkite.uploadArtifacts(outputPath); + const versionChanges = Object.keys(soComparisonResult.changes).reduce((changes, pluginId) => { + changes[pluginId] = soComparisonResult.changes[pluginId].versionChange; + return changes; + }, {} as VersionChanges); + return { hasChanges: soComparisonResult.hasChanges, changed: soComparisonResult.changed, + versionChanges, command, }; } catch (ex) { @@ -47,14 +56,24 @@ export function compareSOSnapshots( export function makeSOComparisonBlockHtml(comparisonResult: { hasChanges: boolean; changed: string[]; + versionChanges: VersionChanges; command: string; }): string { if (comparisonResult.hasChanges) { + const { versionChanges, changed, command } = comparisonResult; return `
-

Plugin Saved Object migration changes: *yes, ${comparisonResult.changed.length} plugin(s)*

-
Changed plugins: ${comparisonResult.changed.join(', ')}
+

Plugin Saved Object migration changes: *yes, ${changed.length} plugin(s)*

+
Changed plugins:
+
+
    +${Object.keys(versionChanges).map((key) => { + const { from, to, emoji } = versionChanges[key]; + return `
  • ${emoji} ${key}: ${from} => ${to}
  • `; +})} +
+
Find detailed info in the archived artifacts, or run the command yourself: -
${comparisonResult.command}
+
${command}
`; } else { return `
diff --git a/.buildkite/scripts/steps/artifacts/docker_image.sh b/.buildkite/scripts/steps/artifacts/docker_image.sh index 0518e17f6524e..f6ed33bbce0d3 100755 --- a/.buildkite/scripts/steps/artifacts/docker_image.sh +++ b/.buildkite/scripts/steps/artifacts/docker_image.sh @@ -26,7 +26,7 @@ if docker manifest inspect $KIBANA_IMAGE &> /dev/null; then exit 1 fi -echo "--- Build images" +echo "--- Build Kibana" node scripts/build \ --debug \ --release \ @@ -37,8 +37,7 @@ node scripts/build \ --skip-docker-ubuntu \ --skip-docker-ubi \ --skip-docker-cloud \ - --skip-docker-contexts \ - --skip-cdn-assets + --skip-docker-contexts echo "--- Tag images" docker rmi "$KIBANA_IMAGE" @@ -88,12 +87,22 @@ fi echo "--- Build dependencies report" node scripts/licenses_csv_report "--csv=target/dependencies-$GIT_ABBREV_COMMIT.csv" -echo "--- Upload artifacts" +echo "--- Upload CDN assets" cd target +gcloud auth activate-service-account --key-file <(echo "$GCS_SA_CDN_QA_KEY") + +CDN_ASSETS_FOLDER=$(mktemp -d) +tar -xf "kibana-$BASE_VERSION-cdn-assets.tar.gz" -C "$CDN_ASSETS_FOLDER" --strip=1 + +gsutil -m cp -r "$CDN_ASSETS_FOLDER/*" "gs://$GCS_SA_CDN_QA_BUCKET/$GIT_ABBREV_COMMIT" +gcloud auth revoke "$GCS_SA_CDN_QA_EMAIL" + +echo "--- Upload archives" buildkite-agent artifact upload "kibana-$BASE_VERSION-linux-x86_64.tar.gz" buildkite-agent artifact upload "kibana-$BASE_VERSION-linux-aarch64.tar.gz" buildkite-agent artifact upload "kibana-$BASE_VERSION-docker-image.tar.gz" buildkite-agent artifact upload "kibana-$BASE_VERSION-docker-image-aarch64.tar.gz" +buildkite-agent artifact upload "kibana-$BASE_VERSION-cdn-assets.tar.gz" buildkite-agent artifact upload "dependencies-$GIT_ABBREV_COMMIT.csv" cd - @@ -110,9 +119,7 @@ steps: build: env: SERVICE_COMMIT_HASH: "$GIT_ABBREV_COMMIT" - SERVICE: kibana-controller - NAMESPACE: kibana-ci - IMAGE_NAME: kibana-serverless + SERVICE: kibana REMOTE_SERVICE_CONFIG: https://raw.githubusercontent.com/elastic/serverless-gitops/main/gen/gpctl/kibana/dev.yaml EOF diff --git a/.buildkite/scripts/steps/checks.sh b/.buildkite/scripts/steps/checks.sh index 4d9461a6a2bff..51f318179bbaf 100755 --- a/.buildkite/scripts/steps/checks.sh +++ b/.buildkite/scripts/steps/checks.sh @@ -5,24 +5,8 @@ set -euo pipefail export DISABLE_BOOTSTRAP_VALIDATION=false .buildkite/scripts/bootstrap.sh -.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/saved_objects_compat_changes.sh .buildkite/scripts/steps/checks/saved_objects_definition_change.sh +.buildkite/scripts/steps/code_generation/elastic_assistant_codegen.sh .buildkite/scripts/steps/code_generation/security_solution_codegen.sh .buildkite/scripts/steps/code_generation/osquery_codegen.sh -.buildkite/scripts/steps/checks/yarn_deduplicate.sh diff --git a/.buildkite/scripts/steps/cloud/build_and_deploy.sh b/.buildkite/scripts/steps/cloud/build_and_deploy.sh index b6c2dcd0968e3..15de3aa8614b8 100755 --- a/.buildkite/scripts/steps/cloud/build_and_deploy.sh +++ b/.buildkite/scripts/steps/cloud/build_and_deploy.sh @@ -62,7 +62,7 @@ fi echo "--- Create Deployment" CLOUD_DEPLOYMENT_ID=$(ecctl deployment list --output json | jq -r '.deployments[] | select(.name == "'$CLOUD_DEPLOYMENT_NAME'") | .id') -if [ -z "${CLOUD_DEPLOYMENT_ID}" ]; then +if [ -z "${CLOUD_DEPLOYMENT_ID}" ] || [ "${CLOUD_DEPLOYMENT_ID}" = 'null' ]; then jq ' .resources.kibana[0].plan.kibana.docker_image = "'$KIBANA_CLOUD_IMAGE'" | .resources.elasticsearch[0].plan.elasticsearch.docker_image = "'$ELASTICSEARCH_CLOUD_IMAGE'" | @@ -86,7 +86,13 @@ if [ -z "${CLOUD_DEPLOYMENT_ID}" ]; then VAULT_SECRET_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-secret-id)" VAULT_TOKEN=$(retry 5 30 vault write -field=token auth/approle/login role_id="$VAULT_ROLE_ID" secret_id="$VAULT_SECRET_ID") retry 5 30 vault login -no-print "$VAULT_TOKEN" - vault_set "cloud-deploy/$CLOUD_DEPLOYMENT_NAME" username="$CLOUD_DEPLOYMENT_USERNAME" password="$CLOUD_DEPLOYMENT_PASSWORD" + + # TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done + if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then + vault_set "cloud-deploy/$CLOUD_DEPLOYMENT_NAME" username="$CLOUD_DEPLOYMENT_USERNAME" password="$CLOUD_DEPLOYMENT_PASSWORD" + else + vault_kv_set "cloud-deploy/$CLOUD_DEPLOYMENT_NAME" username="$CLOUD_DEPLOYMENT_USERNAME" password="$CLOUD_DEPLOYMENT_PASSWORD" + fi echo "Enabling Stack Monitoring..." jq ' @@ -121,10 +127,11 @@ fi CLOUD_DEPLOYMENT_KIBANA_URL=$(ecctl deployment show "$CLOUD_DEPLOYMENT_ID" | jq -r '.resources.kibana[0].info.metadata.aliased_url') CLOUD_DEPLOYMENT_ELASTICSEARCH_URL=$(ecctl deployment show "$CLOUD_DEPLOYMENT_ID" | jq -r '.resources.elasticsearch[0].info.metadata.aliased_url') -if [[ "$VAULT_ADDR" == *"secrets.elastic.co"* ]]; then - VAULT_PATH_PREFIX="secret/kibana-issues/dev" +# TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done +if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then + VAULT_READ_COMMAND="vault read $VAULT_PATH_PREFIX/cloud-deploy/$CLOUD_DEPLOYMENT_NAME" else - VAULT_PATH_PREFIX="secret/ci/elastic-kibana" + VAULT_READ_COMMAND="vault kv get $VAULT_KV_PREFIX/cloud-deploy/$CLOUD_DEPLOYMENT_NAME" fi cat << EOF | buildkite-agent annotate --style "info" --context cloud @@ -134,7 +141,7 @@ cat << EOF | buildkite-agent annotate --style "info" --context cloud Elasticsearch: $CLOUD_DEPLOYMENT_ELASTICSEARCH_URL - Credentials: \`vault read $VAULT_PATH_PREFIX/cloud-deploy/$CLOUD_DEPLOYMENT_NAME\` + Credentials: \`$VAULT_READ_COMMAND\` Kibana image: \`$KIBANA_CLOUD_IMAGE\` diff --git a/.buildkite/scripts/steps/code_generation/elastic_assistant_codegen.sh b/.buildkite/scripts/steps/code_generation/elastic_assistant_codegen.sh new file mode 100755 index 0000000000000..475c545a283c0 --- /dev/null +++ b/.buildkite/scripts/steps/code_generation/elastic_assistant_codegen.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +set -euo pipefail + +source .buildkite/scripts/common/util.sh + +echo --- Elastic Assistant OpenAPI Code Generation + +(cd x-pack/packages/kbn-elastic-assistant-common && yarn openapi:generate) +check_for_changed_files "yarn openapi:generate" true diff --git a/.buildkite/scripts/steps/functional/defend_workflows.sh b/.buildkite/scripts/steps/functional/defend_workflows.sh index c85321869f836..1c0af06a2765c 100755 --- a/.buildkite/scripts/steps/functional/defend_workflows.sh +++ b/.buildkite/scripts/steps/functional/defend_workflows.sh @@ -13,4 +13,6 @@ echo "--- Defend Workflows Cypress tests" cd x-pack/plugins/security_solution set +e -yarn cypress:dw:run; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci defend-workflows-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:dw:run; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/defend_workflows_serverless.sh b/.buildkite/scripts/steps/functional/defend_workflows_serverless.sh index 15e803eb87646..f1466ccc4516a 100755 --- a/.buildkite/scripts/steps/functional/defend_workflows_serverless.sh +++ b/.buildkite/scripts/steps/functional/defend_workflows_serverless.sh @@ -13,4 +13,6 @@ echo "--- Defend Workflows Cypress tests on Serverless" cd x-pack/plugins/security_solution set +e -yarn cypress:dw:serverless:run; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci defend-workflows-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:dw:serverless:run; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_serverless_ai_assistant.sh b/.buildkite/scripts/steps/functional/security_serverless_ai_assistant.sh index 9329c6550df08..a37e1f3b2ad40 100644 --- a/.buildkite/scripts/steps/functional/security_serverless_ai_assistant.sh +++ b/.buildkite/scripts/steps/functional/security_serverless_ai_assistant.sh @@ -13,4 +13,6 @@ echo "--- AI Assistant Cypress Tests on Serverless" cd x-pack/test/security_solution_cypress set +e -yarn cypress:ai_assistant:run:serverless; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:ai_assistant:run:serverless; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_serverless_detection_engine.sh b/.buildkite/scripts/steps/functional/security_serverless_detection_engine.sh index 9920571af58d3..01b69f38b8e31 100644 --- a/.buildkite/scripts/steps/functional/security_serverless_detection_engine.sh +++ b/.buildkite/scripts/steps/functional/security_serverless_detection_engine.sh @@ -13,4 +13,6 @@ echo "--- Detection Engine Cypress Tests on Serverless" cd x-pack/test/security_solution_cypress set +e -yarn cypress:detection_engine:run:serverless; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:detection_engine:run:serverless; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_serverless_detection_engine_exceptions.sh b/.buildkite/scripts/steps/functional/security_serverless_detection_engine_exceptions.sh index f22937592168f..6377e99c8ddfe 100644 --- a/.buildkite/scripts/steps/functional/security_serverless_detection_engine_exceptions.sh +++ b/.buildkite/scripts/steps/functional/security_serverless_detection_engine_exceptions.sh @@ -13,4 +13,6 @@ echo "--- Detection Engine - Exceptions - Cypress Tests on Serverless" cd x-pack/test/security_solution_cypress set +e -yarn cypress:detection_engine:exceptions:run:serverless; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:detection_engine:exceptions:run:serverless; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_serverless_entity_analytics.sh b/.buildkite/scripts/steps/functional/security_serverless_entity_analytics.sh index 0c3822e149d53..11e4bcbd69eee 100644 --- a/.buildkite/scripts/steps/functional/security_serverless_entity_analytics.sh +++ b/.buildkite/scripts/steps/functional/security_serverless_entity_analytics.sh @@ -13,4 +13,6 @@ echo "--- Entity Analytics Cypress Tests on Serverless" cd x-pack/test/security_solution_cypress set +e -yarn cypress:entity_analytics:run:serverless; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:entity_analytics:run:serverless; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_serverless_explore.sh b/.buildkite/scripts/steps/functional/security_serverless_explore.sh index 52237e4d8f902..adde2135243ba 100644 --- a/.buildkite/scripts/steps/functional/security_serverless_explore.sh +++ b/.buildkite/scripts/steps/functional/security_serverless_explore.sh @@ -13,4 +13,6 @@ echo "--- Explore - Security Solution Cypress Tests" cd x-pack/test/security_solution_cypress set +e -yarn cypress:explore:run:serverless; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:explore:run:serverless; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_serverless_investigations.sh b/.buildkite/scripts/steps/functional/security_serverless_investigations.sh index 6a79a92871fb2..0c7194dcac668 100644 --- a/.buildkite/scripts/steps/functional/security_serverless_investigations.sh +++ b/.buildkite/scripts/steps/functional/security_serverless_investigations.sh @@ -13,4 +13,6 @@ echo "--- Investigations Cypress Tests on Serverless" cd x-pack/test/security_solution_cypress set +e -yarn cypress:investigations:run:serverless; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:investigations:run:serverless; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_serverless_rule_management.sh b/.buildkite/scripts/steps/functional/security_serverless_rule_management.sh index 5d360e0db4f29..85f088aeff8b5 100644 --- a/.buildkite/scripts/steps/functional/security_serverless_rule_management.sh +++ b/.buildkite/scripts/steps/functional/security_serverless_rule_management.sh @@ -13,4 +13,6 @@ echo "--- Rule Management Cypress Tests on Serverless" cd x-pack/test/security_solution_cypress set +e -yarn cypress:rule_management:run:serverless; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:rule_management:run:serverless; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_serverless_rule_management_prebuilt_rules.sh b/.buildkite/scripts/steps/functional/security_serverless_rule_management_prebuilt_rules.sh index bc7dc3269d8cb..50d27689e5dd9 100644 --- a/.buildkite/scripts/steps/functional/security_serverless_rule_management_prebuilt_rules.sh +++ b/.buildkite/scripts/steps/functional/security_serverless_rule_management_prebuilt_rules.sh @@ -13,4 +13,6 @@ echo "--- Rule Management - Prebuilt Rules - Cypress Tests on Serverless" cd x-pack/test/security_solution_cypress set +e -yarn cypress:rule_management:prebuilt_rules:run:serverless; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:rule_management:prebuilt_rules:run:serverless; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_solution_ai_assistant.sh b/.buildkite/scripts/steps/functional/security_solution_ai_assistant.sh index 526ac1a2a7ccd..4f77f790376fe 100644 --- a/.buildkite/scripts/steps/functional/security_solution_ai_assistant.sh +++ b/.buildkite/scripts/steps/functional/security_solution_ai_assistant.sh @@ -13,4 +13,6 @@ echo "--- AI Assistant - Security Solution Cypress Tests" cd x-pack/test/security_solution_cypress set +e -yarn cypress:ai_assistant:run:ess; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:ai_assistant:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_solution_detection_engine.sh b/.buildkite/scripts/steps/functional/security_solution_detection_engine.sh index 30d0e73afcb70..523c2a8880675 100644 --- a/.buildkite/scripts/steps/functional/security_solution_detection_engine.sh +++ b/.buildkite/scripts/steps/functional/security_solution_detection_engine.sh @@ -13,4 +13,6 @@ echo "--- Detection Engine - Security Solution Cypress Tests" cd x-pack/test/security_solution_cypress set +e -yarn cypress:detection_engine:run:ess; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:detection_engine:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_solution_detection_engine_exceptions.sh b/.buildkite/scripts/steps/functional/security_solution_detection_engine_exceptions.sh index 09a18ff3956ed..68b830116b4c8 100644 --- a/.buildkite/scripts/steps/functional/security_solution_detection_engine_exceptions.sh +++ b/.buildkite/scripts/steps/functional/security_solution_detection_engine_exceptions.sh @@ -13,4 +13,6 @@ echo "--- Detection Engine - Exceptions - Security Solution Cypress Tests" cd x-pack/test/security_solution_cypress set +e -yarn cypress:detection_engine:exceptions:run:ess; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:detection_engine:exceptions:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_solution_entity_analytics.sh b/.buildkite/scripts/steps/functional/security_solution_entity_analytics.sh index 09f44d4c6b7ab..0c2fad86a4553 100755 --- a/.buildkite/scripts/steps/functional/security_solution_entity_analytics.sh +++ b/.buildkite/scripts/steps/functional/security_solution_entity_analytics.sh @@ -13,4 +13,6 @@ echo "--- Entity Analytics - Security Solution Cypress Tests" cd x-pack/test/security_solution_cypress set +e -yarn cypress:entity_analytics:run:ess; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:entity_analytics:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_solution_explore.sh b/.buildkite/scripts/steps/functional/security_solution_explore.sh index e5513e63a7664..8bd206138825b 100644 --- a/.buildkite/scripts/steps/functional/security_solution_explore.sh +++ b/.buildkite/scripts/steps/functional/security_solution_explore.sh @@ -13,4 +13,6 @@ echo "--- Explore Cypress Tests on Security Solution" cd x-pack/test/security_solution_cypress set +e -yarn cypress:explore:run:ess; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:explore:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_solution_investigations.sh b/.buildkite/scripts/steps/functional/security_solution_investigations.sh index d26261b638d5a..748c937eb6668 100644 --- a/.buildkite/scripts/steps/functional/security_solution_investigations.sh +++ b/.buildkite/scripts/steps/functional/security_solution_investigations.sh @@ -13,4 +13,6 @@ echo "--- Investigations - Security Solution Cypress Tests" cd x-pack/test/security_solution_cypress set +e -yarn cypress:investigations:run:ess; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:investigations:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_solution_rule_management.sh b/.buildkite/scripts/steps/functional/security_solution_rule_management.sh index 847cb42896cf1..24e42abc8ca9b 100644 --- a/.buildkite/scripts/steps/functional/security_solution_rule_management.sh +++ b/.buildkite/scripts/steps/functional/security_solution_rule_management.sh @@ -13,4 +13,6 @@ echo "--- Rule Management - Security Solution Cypress Tests" cd x-pack/test/security_solution_cypress set +e -yarn cypress:rule_management:run:ess; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:rule_management:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/security_solution_rule_management_prebuilt_rules.sh b/.buildkite/scripts/steps/functional/security_solution_rule_management_prebuilt_rules.sh index d8b19ad3363b5..91d0e2bdb9c2e 100644 --- a/.buildkite/scripts/steps/functional/security_solution_rule_management_prebuilt_rules.sh +++ b/.buildkite/scripts/steps/functional/security_solution_rule_management_prebuilt_rules.sh @@ -13,4 +13,6 @@ echo "--- Rule Management - Prebuilt Rules - Security Solution Cypress Tests" cd x-pack/test/security_solution_cypress set +e -yarn cypress:rule_management:prebuilt_rules:run:ess; status=$?; yarn junit:merge || :; exit $status +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci sec-sol-cypress-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn cypress:rule_management:prebuilt_rules:run:ess; status=$?; yarn junit:merge || :; exit $status \ No newline at end of file diff --git a/.buildkite/scripts/steps/functional/threat_intelligence.sh b/.buildkite/scripts/steps/functional/threat_intelligence.sh index 0c2c80942e7c6..bd4fdd814b87b 100755 --- a/.buildkite/scripts/steps/functional/threat_intelligence.sh +++ b/.buildkite/scripts/steps/functional/threat_intelligence.sh @@ -10,4 +10,6 @@ export KIBANA_INSTALL_DIR=${KIBANA_BUILD_LOCATION} echo "--- Threat Intelligence Cypress tests (Chrome)" -yarn --cwd x-pack/plugins/threat_intelligence cypress:run +BK_ANALYTICS_API_KEY=$(vault_get security-solution-ci threat-intelligence-bk-api-key) + +BK_ANALYTICS_API_KEY=$BK_ANALYTICS_API_KEY yarn --cwd x-pack/plugins/threat_intelligence cypress:run \ No newline at end of file diff --git a/.buildkite/scripts/steps/package_testing/test.sh b/.buildkite/scripts/steps/package_testing/test.sh index 4a2b8a52525d6..c16d5cf98b5f5 100755 --- a/.buildkite/scripts/steps/package_testing/test.sh +++ b/.buildkite/scripts/steps/package_testing/test.sh @@ -5,6 +5,9 @@ set -euo pipefail source "$(dirname "$0")/../../common/util.sh" .buildkite/scripts/bootstrap.sh +# temporary adding this to get screenshots +is_test_execution_step + echo "--- Package Testing for $TEST_PACKAGE" mkdir -p target diff --git a/.buildkite/scripts/steps/quick_checks.sh b/.buildkite/scripts/steps/quick_checks.sh new file mode 100755 index 0000000000000..d96657ea70157 --- /dev/null +++ b/.buildkite/scripts/steps/quick_checks.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +set -euo pipefail + +export DISABLE_BOOTSTRAP_VALIDATION=false +.buildkite/scripts/bootstrap.sh + +.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 diff --git a/.buildkite/scripts/steps/serverless/build_and_deploy.sh b/.buildkite/scripts/steps/serverless/build_and_deploy.sh index a78252e3baec0..b195d7ad36ea5 100644 --- a/.buildkite/scripts/steps/serverless/build_and_deploy.sh +++ b/.buildkite/scripts/steps/serverless/build_and_deploy.sh @@ -59,6 +59,11 @@ deploy() { -XPOST -d "$PROJECT_CREATE_CONFIGURATION" &>> $DEPLOY_LOGS PROJECT_ID=$(jq -r --slurp '.[1].id' $DEPLOY_LOGS) + if [ -z "${PROJECT_ID}" ] || [ "$PROJECT_ID" = 'null' ]; then + echo "Failed to create project. Deploy logs:" + cat $DEPLOY_LOGS + exit 1 + fi echo "Get credentials..." curl -s -XPOST -H "Authorization: ApiKey $PROJECT_API_KEY" \ @@ -72,7 +77,14 @@ deploy() { VAULT_SECRET_ID="$(retry 5 15 gcloud secrets versions access latest --secret=kibana-buildkite-vault-secret-id)" VAULT_TOKEN=$(retry 5 30 vault write -field=token auth/approle/login role_id="$VAULT_ROLE_ID" secret_id="$VAULT_SECRET_ID") retry 5 30 vault login -no-print "$VAULT_TOKEN" - vault_set "cloud-deploy/$PROJECT_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID" + + # TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done + if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then + vault_set "cloud-deploy/$PROJECT_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID" + else + vault_kv_set "cloud-deploy/$PROJECT_NAME" username="$PROJECT_USERNAME" password="$PROJECT_PASSWORD" id="$PROJECT_ID" + fi + else echo "Updating project..." curl -s \ @@ -86,10 +98,11 @@ deploy() { PROJECT_KIBANA_LOGIN_URL="${PROJECT_KIBANA_URL}/login" PROJECT_ELASTICSEARCH_URL=$(jq -r --slurp '.[1].endpoints.elasticsearch' $DEPLOY_LOGS) - if [[ "$VAULT_ADDR" == *"secrets.elastic.co"* ]]; then - VAULT_PATH_PREFIX="secret/kibana-issues/dev" + # TODO: remove after https://github.com/elastic/kibana-operations/issues/15 is done + if [[ "$IS_LEGACY_VAULT_ADDR" == "true" ]]; then + VAULT_READ_COMMAND="vault read $VAULT_PATH_PREFIX/cloud-deploy/$PROJECT_NAME" else - VAULT_PATH_PREFIX="secret/ci/elastic-kibana" + VAULT_READ_COMMAND="vault kv get $VAULT_KV_PREFIX/cloud-deploy/$PROJECT_NAME" fi cat << EOF | buildkite-agent annotate --style "info" --context "project-$PROJECT_TYPE" @@ -99,7 +112,7 @@ Kibana: $PROJECT_KIBANA_LOGIN_URL Elasticsearch: $PROJECT_ELASTICSEARCH_URL -Credentials: \`vault read $VAULT_PATH_PREFIX/cloud-deploy/$PROJECT_NAME\` +Credentials: \`$VAULT_READ_COMMAND\` Kibana image: \`$KIBANA_IMAGE\` EOF diff --git a/.eslintignore b/.eslintignore index 24a3214126de4..211ee52634a04 100644 --- a/.eslintignore +++ b/.eslintignore @@ -29,7 +29,6 @@ snapshots.js /x-pack/plugins/reporting/server/export_types/printable_pdf/server/lib/pdf/assets/** /x-pack/plugins/reporting/server/export_types/printable_pdf_v2/server/lib/pdf/assets/** /x-pack/plugins/cloud_integrations/cloud_full_story/server/assets/** -/x-pack/plugins/cloud_integrations/cloud_gain_sight/server/assets/** # package overrides /packages/kbn-eslint-config diff --git a/.eslintrc.js b/.eslintrc.js index 56fe621c99bb4..f3a4fcf6ecc0d 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -671,7 +671,7 @@ module.exports = { */ { files: [ - 'test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js', + 'packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/scroll_into_view_if_necessary.js', '**/browser_exec_scripts/**/*.js', ], rules: { @@ -1121,6 +1121,7 @@ module.exports = { 'x-pack/plugins/security_solution_serverless/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/timelines/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/cases/**/*.{js,mjs,ts,tsx}', + 'packages/kbn-data-stream-adapter/**/*.{js,mjs,ts,tsx}', ], plugins: ['eslint-plugin-node', 'react'], env: { @@ -1218,6 +1219,8 @@ module.exports = { 'x-pack/plugins/security_solution_ess/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/security_solution_serverless/**/*.{js,mjs,ts,tsx}', 'x-pack/plugins/cases/**/*.{js,mjs,ts,tsx}', + 'x-pack/plugins/ecs_data_quality_dashboard/**/*.{js,mjs,ts,tsx}', + 'packages/kbn-data-stream-adapter/**/*.{js,mjs,ts,tsx}', ], rules: { '@typescript-eslint/consistent-type-imports': 'error', diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 87c6ce9eb9867..6e709d4b9e9b2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -39,7 +39,6 @@ packages/analytics/shippers/elastic_v3/browser @elastic/kibana-core packages/analytics/shippers/elastic_v3/common @elastic/kibana-core packages/analytics/shippers/elastic_v3/server @elastic/kibana-core packages/analytics/shippers/fullstory @elastic/kibana-core -packages/analytics/shippers/gainsight @elastic/kibana-core packages/kbn-apm-config-loader @elastic/kibana-core @vigneshshanmugam x-pack/plugins/apm_data_access @elastic/obs-knowledge-team @elastic/obs-ux-infra_services-team x-pack/plugins/apm @elastic/obs-ux-infra_services-team @@ -81,12 +80,12 @@ x-pack/plugins/cloud_integrations/cloud_data_migration @elastic/platform-onboard x-pack/plugins/cloud_defend @elastic/kibana-cloud-security-posture x-pack/plugins/cloud_integrations/cloud_experiments @elastic/kibana-core x-pack/plugins/cloud_integrations/cloud_full_story @elastic/kibana-core -x-pack/plugins/cloud_integrations/cloud_gain_sight @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/plugins/cloud_security_posture @elastic/kibana-cloud-security-posture -packages/shared-ux/code_editor @elastic/appex-sharedux +packages/shared-ux/code_editor/impl @elastic/appex-sharedux +packages/shared-ux/code_editor/mocks @elastic/appex-sharedux packages/kbn-code-owners @elastic/appex-qa packages/kbn-coloring @elastic/kibana-visualizations packages/kbn-config @elastic/kibana-core @@ -316,9 +315,11 @@ src/plugins/custom_integrations @elastic/fleet packages/kbn-cypress-config @elastic/kibana-operations x-pack/plugins/dashboard_enhanced @elastic/kibana-presentation src/plugins/dashboard @elastic/kibana-presentation +x-pack/packages/kbn-data-forge @elastic/obs-ux-management-team src/plugins/data @elastic/kibana-visualizations @elastic/kibana-data-discovery test/plugin_functional/plugins/data_search @elastic/kibana-data-discovery packages/kbn-data-service @elastic/kibana-visualizations @elastic/kibana-data-discovery +packages/kbn-data-stream-adapter @elastic/security-threat-hunting-explore src/plugins/data_view_editor @elastic/kibana-data-discovery examples/data_view_field_editor_example @elastic/kibana-data-discovery src/plugins/data_view_field_editor @elastic/kibana-data-discovery @@ -489,6 +490,7 @@ x-pack/plugins/kubernetes_security @elastic/kibana-cloud-security-posture packages/kbn-language-documentation-popover @elastic/kibana-visualizations packages/kbn-lens-embeddable-utils @elastic/obs-ux-infra_services-team @elastic/kibana-visualizations packages/kbn-lens-formula-docs @elastic/kibana-visualizations +x-pack/examples/lens_embeddable_inline_editing_example @elastic/kibana-visualizations x-pack/plugins/lens @elastic/kibana-visualizations x-pack/plugins/license_api_guard @elastic/platform-deployment-management x-pack/plugins/license_management @elastic/platform-deployment-management @@ -504,6 +506,7 @@ packages/kbn-logging @elastic/kibana-core packages/kbn-logging-mocks @elastic/kibana-core x-pack/plugins/logs_shared @elastic/obs-ux-logs-team x-pack/plugins/logstash @elastic/logstash +packages/kbn-managed-content-badge @elastic/kibana-visualizations packages/kbn-managed-vscode-config @elastic/kibana-operations packages/kbn-managed-vscode-config-cli @elastic/kibana-operations packages/kbn-management/cards_navigation @elastic/platform-deployment-management @@ -555,6 +558,7 @@ x-pack/packages/ml/trained_models_utils @elastic/ml-ui x-pack/packages/ml/ui_actions @elastic/ml-ui x-pack/packages/ml/url_state @elastic/ml-ui packages/kbn-mock-idp-plugin @elastic/kibana-security +packages/kbn-mock-idp-utils @elastic/kibana-security packages/kbn-monaco @elastic/appex-sharedux x-pack/plugins/monitoring_collection @elastic/obs-ux-infra_services-team x-pack/plugins/monitoring @elastic/obs-ux-infra_services-team @@ -588,10 +592,15 @@ packages/kbn-peggy @elastic/kibana-operations packages/kbn-peggy-loader @elastic/kibana-operations packages/kbn-performance-testing-dataset-extractor @elastic/kibana-performance-testing packages/kbn-picomatcher @elastic/kibana-operations +packages/kbn-plugin-check @elastic/appex-sharedux packages/kbn-plugin-generator @elastic/kibana-operations packages/kbn-plugin-helpers @elastic/kibana-operations examples/portable_dashboards_example @elastic/kibana-presentation examples/preboot_example @elastic/kibana-security @elastic/kibana-core +packages/presentation/presentation_containers @elastic/kibana-presentation +packages/presentation/presentation_library @elastic/kibana-presentation +src/plugins/presentation_panel @elastic/kibana-presentation +packages/presentation/presentation_publishing @elastic/kibana-presentation src/plugins/presentation_util @elastic/kibana-presentation x-pack/plugins/profiling_data_access @elastic/obs-ux-infra_services-team x-pack/plugins/profiling @elastic/obs-ux-infra_services-team @@ -766,6 +775,7 @@ x-pack/packages/kbn-slo-schema @elastic/obs-ux-management-team x-pack/plugins/snapshot_restore @elastic/platform-deployment-management packages/kbn-some-dev-log @elastic/kibana-operations packages/kbn-sort-package-json @elastic/kibana-operations +packages/kbn-sort-predicates @elastic/kibana-visualizations x-pack/plugins/spaces @elastic/kibana-security x-pack/test/spaces_api_integration/common/plugins/spaces_test_plugin @elastic/kibana-security packages/kbn-spec-to-console @elastic/platform-deployment-management @@ -789,6 +799,7 @@ src/plugins/telemetry @elastic/kibana-core test/plugin_functional/plugins/telemetry @elastic/kibana-core packages/kbn-telemetry-tools @elastic/kibana-core packages/kbn-test @elastic/kibana-operations @elastic/appex-qa +packages/kbn-test-eui-helpers @elastic/kibana-visualizations x-pack/test/licensing_plugin/plugins/test_feature_usage @elastic/kibana-security packages/kbn-test-jest-helpers @elastic/kibana-operations @elastic/appex-qa packages/kbn-test-subj-selector @elastic/kibana-operations @elastic/appex-qa @@ -1044,9 +1055,9 @@ x-pack/plugins/infra/public/alerting @elastic/obs-ux-management-team x-pack/plugins/infra/server/lib/alerting @elastic/obs-ux-management-team # Elastic Stack Monitoring -/x-pack/test/functional/apps/monitoring @elastic/obs-ux-infra_services-team -/x-pack/test/api_integration/apis/monitoring @elastic/obs-ux-infra_services-team -/x-pack/test/api_integration/apis/monitoring_collection @elastic/obs-ux-infra_services-team +/x-pack/test/functional/apps/monitoring @elastic/obs-ux-infra_services-team @elastic/stack-monitoring +/x-pack/test/api_integration/apis/monitoring @elastic/obs-ux-infra_services-team @elastic/stack-monitoring +/x-pack/test/api_integration/apis/monitoring_collection @elastic/obs-ux-infra_services-team @elastic/stack-monitoring /x-pack/test_serverless/functional/test_suites/observability/observability_log_explorer @elastic/obs-ux-logs-team # Fleet @@ -1297,6 +1308,7 @@ x-pack/test/security_solution_api_integration/test_suites/detections_response/de /x-pack/test/security_solution_cypress/cypress/e2e/investigations @elastic/security-threat-hunting-investigations /x-pack/test/security_solution_cypress/cypress/e2e/sourcerer/sourcerer_timeline.cy.ts @elastic/security-threat-hunting-investigations +/x-pack/test/threat_intelligence_cypress @elastic/security-threat-hunting-investigations x-pack/test/security_solution_cypress/cypress/screens/expandable_flyout @elastic/security-threat-hunting-investigations x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/security-threat-hunting-investigations @@ -1312,6 +1324,7 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ /x-pack/plugins/security_solution/public/flyout/document_details @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/flyout/shared @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/resolver @elastic/security-threat-hunting-investigations +/x-pack/plugins/security_solution/public/threat_intelligence @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/public/timelines @elastic/security-threat-hunting-investigations /x-pack/plugins/security_solution/server/lib/timeline @elastic/security-threat-hunting-investigations @@ -1380,6 +1393,7 @@ x-pack/test/security_solution_cypress/cypress/tasks/expandable_flyout @elastic/ /x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/prebuilt_rules @elastic/security-detection-rule-management /x-pack/plugins/security_solution/docs/testing/test_plans/detection_response/rule_management @elastic/security-detection-rule-management /x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/prebuilt_rules @elastic/security-detection-rule-management +/x-pack/test/security_solution_api_integration/test_suites/detections_response/basic_essentials_license/rule_management @elastic/security-detection-rule-management /x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/rule_delete @elastic/security-detection-rule-management x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/rule_update @elastic/security-detection-rule-management /x-pack/test/security_solution_api_integration/test_suites/detections_response/default_license/rule_patch @elastic/security-detection-rule-management @@ -1493,10 +1507,6 @@ x-pack/test/security_solution_api_integration/test_suites/detections_response/de x-pack/plugins/security_solution/public/common/components/sessions_viewer @elastic/kibana-cloud-security-posture x-pack/plugins/security_solution/public/kubernetes @elastic/kibana-cloud-security-posture -## Security Solution sub teams - Protections Experience -x-pack/plugins/security_solution/public/threat_intelligence @elastic/protections-experience -x-pack/test/threat_intelligence_cypress @elastic/protections-experience - ## Security Solution sub teams - Entity Analytics x-pack/plugins/security_solution/common/entity_analytics @elastic/security-entity-analytics x-pack/plugins/security_solution/common/search_strategy/security_solution/risk_score @elastic/security-entity-analytics @@ -1525,6 +1535,9 @@ x-pack/plugins/security_solution/common/api/entity_analytics @elastic/security-e /x-pack/test_serverless/functional/test_suites/security/ftr/cloud_security_posture/ @elastic/kibana-cloud-security-posture /x-pack/test_serverless/functional/test_suites/security/config.cloud_security_posture.ts @elastic/kibana-cloud-security-posture /x-pack/test_serverless/api_integration/test_suites/security/cloud_security_posture/ @elastic/kibana-cloud-security-posture +/x-pack/plugins/fleet/public/components/cloud_security_posture @elastic/fleet @elastic/kibana-cloud-security-posture +/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/components/cloud_security_posture @elastic/fleet @elastic/kibana-cloud-security-posture +/x-pack/plugins/fleet/public/applications/fleet/sections/agent_policy/create_package_policy_page/single_page_layout/hooks/setup_technology.* @elastic/fleet @elastic/kibana-cloud-security-posture # Security Solution onboarding tour /x-pack/plugins/security_solution/public/common/components/guided_onboarding @elastic/security-threat-hunting-explore diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml index 32b0326085929..461d850e4203c 100644 --- a/.github/codeql/codeql-config.yml +++ b/.github/codeql/codeql-config.yml @@ -61,6 +61,7 @@ paths-ignore: - packages/kbn-telemetry-tools - packages/kbn-test - packages/kbn-test-jest-helpers + - packages/kbn-test-eui-helpers - packages/kbn-test-subj-selector - packages/kbn-tooling-log - packages/kbn-ts-project-linter diff --git a/.github/workflows/docs-preview-links.yml b/.github/workflows/docs-preview-links.yml index 79ea1de7748a9..ba6e2397759b2 100644 --- a/.github/workflows/docs-preview-links.yml +++ b/.github/workflows/docs-preview-links.yml @@ -6,21 +6,15 @@ on: paths: - '**.asciidoc' +permissions: + pull-requests: write jobs: doc-preview: runs-on: ubuntu-latest steps: - - uses: actions/github-script@v6 - name: Add doc preview links + - uses: elastic/docs/.github/actions/docs-preview@current with: - script: | - const pr = context.payload.pull_request; - const comment = `Documentation preview: - - ✨ [Changed pages](https://${context.repo.repo}_${pr.number}.docs-preview.app.elstc.co/diff)`; - - github.rest.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: comment, - }); \ No newline at end of file + github-token: ${{ secrets.GITHUB_TOKEN }} + repo: ${{ github.event.repository.name }} + preview-path: 'guide/en/observability/master/index.html' + pr: ${{ github.event.pull_request.number }} diff --git a/.i18nrc.json b/.i18nrc.json index 119c072688489..4bcb014ebf56e 100644 --- a/.i18nrc.json +++ b/.i18nrc.json @@ -30,6 +30,7 @@ "discover": ["src/plugins/discover", "packages/kbn-discover-utils"], "savedSearch": "src/plugins/saved_search", "embeddableApi": "src/plugins/embeddable", + "presentationPanel": "src/plugins/presentation_panel", "embeddableExamples": "examples/embeddable_examples", "esQuery": "packages/kbn-es-query/src", "esUi": "src/plugins/es_ui_shared", @@ -140,7 +141,8 @@ "unifiedFieldList": "packages/kbn-unified-field-list", "unifiedHistogram": "src/plugins/unified_histogram", "unifiedDataTable": "packages/kbn-unified-data-table", - "unsavedChangesBadge": "packages/kbn-unsaved-changes-badge" + "unsavedChangesBadge": "packages/kbn-unsaved-changes-badge", + "managedContentBadge": "packages/kbn-managed-content-badge" }, "translations": [] } diff --git a/NOTICE.txt b/NOTICE.txt index d02031c4b5a2b..0f79b16b0b043 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -225,11 +225,6 @@ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ---- -Portions of this code are licensed under the following license: -Gainsight PX Agent Wrapper Agent Version: 0.46.0 Installed: 2022-08-25 08:07 -https://www.gainsight.com/policy/gainsight-px-license-agreement/ - --- This code includes a copy of the `normalize-path` https://github.com/jonschlinkert/normalize-path/blob/52c3a95ebebc2d98c1ad7606cbafa7e658656899/index.js @@ -347,9 +342,3 @@ LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---- -Copyright (c) 2013 HubSpot, Inc. -Released under the MIT license - -https://github.com/HubSpot/vex/blob/master/LICENSE - diff --git a/api_docs/actions.devdocs.json b/api_docs/actions.devdocs.json index a95a7d9c209c6..0256b3f19732f 100644 --- a/api_docs/actions.devdocs.json +++ b/api_docs/actions.devdocs.json @@ -5272,13 +5272,13 @@ }, { "parentPluginId": "actions", - "id": "def-common.GenerativeAIConnectorFeatureId", + "id": "def-common.GenerativeAIForObservabilityConnectorFeatureId", "type": "string", "tags": [], - "label": "GenerativeAIConnectorFeatureId", + "label": "GenerativeAIForObservabilityConnectorFeatureId", "description": [], "signature": [ - "\"generativeAI\"" + "\"generativeAIForObservability\"" ], "path": "x-pack/plugins/actions/common/connector_feature_config.ts", "deprecated": false, @@ -5287,13 +5287,13 @@ }, { "parentPluginId": "actions", - "id": "def-common.GenerativeAIForObservabilityConnectorFeatureId", + "id": "def-common.GenerativeAIForSecurityConnectorFeatureId", "type": "string", "tags": [], - "label": "GenerativeAIForObservabilityConnectorFeatureId", + "label": "GenerativeAIForSecurityConnectorFeatureId", "description": [], "signature": [ - "\"generativeAIForObservability\"" + "\"generativeAIForSecurity\"" ], "path": "x-pack/plugins/actions/common/connector_feature_config.ts", "deprecated": false, @@ -5627,10 +5627,10 @@ }, { "parentPluginId": "actions", - "id": "def-common.GenerativeAIFeature", + "id": "def-common.GenerativeAIForObservabilityFeature", "type": "Object", "tags": [], - "label": "GenerativeAIFeature", + "label": "GenerativeAIForObservabilityFeature", "description": [], "path": "x-pack/plugins/actions/common/connector_feature_config.ts", "deprecated": false, @@ -5638,7 +5638,7 @@ "children": [ { "parentPluginId": "actions", - "id": "def-common.GenerativeAIFeature.id", + "id": "def-common.GenerativeAIForObservabilityFeature.id", "type": "string", "tags": [], "label": "id", @@ -5649,7 +5649,7 @@ }, { "parentPluginId": "actions", - "id": "def-common.GenerativeAIFeature.name", + "id": "def-common.GenerativeAIForObservabilityFeature.name", "type": "string", "tags": [], "label": "name", @@ -5660,7 +5660,7 @@ }, { "parentPluginId": "actions", - "id": "def-common.GenerativeAIFeature.compatibility", + "id": "def-common.GenerativeAIForObservabilityFeature.compatibility", "type": "string", "tags": [], "label": "compatibility", @@ -5674,10 +5674,10 @@ }, { "parentPluginId": "actions", - "id": "def-common.GenerativeAIForObservabilityFeature", + "id": "def-common.GenerativeAIForSecurityFeature", "type": "Object", "tags": [], - "label": "GenerativeAIForObservabilityFeature", + "label": "GenerativeAIForSecurityFeature", "description": [], "path": "x-pack/plugins/actions/common/connector_feature_config.ts", "deprecated": false, @@ -5685,7 +5685,7 @@ "children": [ { "parentPluginId": "actions", - "id": "def-common.GenerativeAIForObservabilityFeature.id", + "id": "def-common.GenerativeAIForSecurityFeature.id", "type": "string", "tags": [], "label": "id", @@ -5696,7 +5696,7 @@ }, { "parentPluginId": "actions", - "id": "def-common.GenerativeAIForObservabilityFeature.name", + "id": "def-common.GenerativeAIForSecurityFeature.name", "type": "string", "tags": [], "label": "name", @@ -5707,7 +5707,7 @@ }, { "parentPluginId": "actions", - "id": "def-common.GenerativeAIForObservabilityFeature.compatibility", + "id": "def-common.GenerativeAIForSecurityFeature.compatibility", "type": "string", "tags": [], "label": "compatibility", diff --git a/api_docs/actions.mdx b/api_docs/actions.mdx index 175c79c8edd8f..5ba8b05bd16af 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-01-04 +date: 2024-01-25 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 67938b9ee86c8..12716a51a3860 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'advancedSettings'] --- import advancedSettingsObj from './advanced_settings.devdocs.json'; diff --git a/api_docs/ai_assistant_management_observability.mdx b/api_docs/ai_assistant_management_observability.mdx index 568c9569b3e52..457756cca70a7 100644 --- a/api_docs/ai_assistant_management_observability.mdx +++ b/api_docs/ai_assistant_management_observability.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/aiAssistantManagementObservability title: "aiAssistantManagementObservability" image: https://source.unsplash.com/400x175/?github description: API docs for the aiAssistantManagementObservability plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'aiAssistantManagementObservability'] --- import aiAssistantManagementObservabilityObj from './ai_assistant_management_observability.devdocs.json'; diff --git a/api_docs/ai_assistant_management_selection.mdx b/api_docs/ai_assistant_management_selection.mdx index ce9a17f1097c9..d2dc6e481b99f 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-01-04 +date: 2024-01-25 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 efe4742f812a6..0d0d21266a426 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-01-04 +date: 2024-01-25 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 5fd8e35e631a9..84f358d1d8f42 100644 --- a/api_docs/alerting.devdocs.json +++ b/api_docs/alerting.devdocs.json @@ -2822,7 +2822,7 @@ "label": "actions", "description": [], "signature": [ - "Readonly<{ frequency?: Readonly<{} & { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; }> | undefined; alertsFilter?: Readonly<{ query?: Readonly<{ dsl?: string | undefined; } & { kql: string; filters: Readonly<{ query?: Record | undefined; $state?: Readonly<{} & { store: \"appState\" | \"globalState\"; }> | undefined; } & { meta: Record; }>[]; }> | undefined; timeframe?: Readonly<{} & { days: (2 | 7 | 6 | 5 | 4 | 3 | 1)[]; hours: Readonly<{} & { start: string; end: string; }>; timezone: string; }> | undefined; } & {}> | undefined; uuid?: string | undefined; useAlertDataForTemplate?: boolean | undefined; } & { id: string; params: Record; actionTypeId: string; group: string; }>[]" + "Readonly<{ frequency?: Readonly<{} & { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; }> | undefined; alertsFilter?: Readonly<{ query?: Readonly<{ dsl?: string | undefined; } & { kql: string; filters: Readonly<{ query?: Record | undefined; $state?: Readonly<{} & { store: \"appState\" | \"globalState\"; }> | undefined; } & { meta: Record; }>[]; }> | undefined; timeframe?: Readonly<{} & { days: (2 | 7 | 6 | 5 | 4 | 3 | 1)[]; hours: Readonly<{} & { start: string; end: string; }>; timezone: string; }> | undefined; } & {}> | undefined; uuid?: string | undefined; useAlertDataForTemplate?: boolean | undefined; } & { id: string; params: Record; actionTypeId: string; group: string; }>[]" ], "path": "x-pack/plugins/alerting/server/application/rule/types/rule.ts", "deprecated": false, @@ -3143,6 +3143,20 @@ "path": "x-pack/plugins/alerting/server/application/rule/types/rule.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.Rule.notificationDelay", + "type": "Object", + "tags": [], + "label": "notificationDelay", + "description": [], + "signature": [ + "Readonly<{} & { active: number; }> | undefined" + ], + "path": "x-pack/plugins/alerting/server/application/rule/types/rule.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -3537,14 +3551,6 @@ "plugin": "observability", "path": "x-pack/plugins/observability/server/lib/rules/slo_burn_rate/executor.ts" }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/server/lib/alerts/register_jobs_monitoring_rule_type.ts" - }, - { - "plugin": "ml", - "path": "x-pack/plugins/ml/server/lib/alerts/register_jobs_monitoring_rule_type.ts" - }, { "plugin": "infra", "path": "x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts" @@ -3561,30 +3567,10 @@ "plugin": "infra", "path": "x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts" }, - { - "plugin": "monitoring", - "path": "x-pack/plugins/monitoring/server/alerts/base_rule.ts" - }, - { - "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/notifications/legacy_rules_notification_alert_type.ts" - }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts" }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/server/rule_types/geo_containment/lib/get_entities_and_generate_alerts.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/server/rule_types/geo_containment/executor.ts" - }, - { - "plugin": "stackAlerts", - "path": "x-pack/plugins/stack_alerts/server/rule_types/geo_containment/executor.ts" - }, { "plugin": "synthetics", "path": "x-pack/plugins/synthetics/server/alert_rules/common.ts" @@ -3601,10 +3587,6 @@ "plugin": "synthetics", "path": "x-pack/plugins/synthetics/server/alert_rules/status_rule/monitor_status_rule.ts" }, - { - "plugin": "transform", - "path": "x-pack/plugins/transform/server/lib/alerting/transform_health_rule_type/register_transform_health_rule_type.ts" - }, { "plugin": "uptime", "path": "x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/common.ts" @@ -3617,10 +3599,6 @@ "plugin": "uptime", "path": "x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/tls.ts" }, - { - "plugin": "uptime", - "path": "x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/tls_legacy.ts" - }, { "plugin": "uptime", "path": "x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/duration_anomaly.ts" @@ -3847,7 +3825,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise; fieldArrayToMap: (fields: ", + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise; fieldArrayToMap: (fields: ", { "pluginId": "dataViews", "scope": "common", @@ -4563,7 +4541,7 @@ "section": "def-common.ActionGroup", "text": "ActionGroup" }, - " ? groups : T extends Readonly<", + " ? groups : T extends Readonly<", { "pluginId": "@kbn/alerting-types", "scope": "common", @@ -4571,7 +4549,7 @@ "section": "def-common.ActionGroup", "text": "ActionGroup" }, - "> ? groups : never" + "> ? groups : never" ], "path": "packages/kbn-alerting-types/rule_type.ts", "deprecated": false, @@ -4616,7 +4594,7 @@ "label": "BulkEditOperation", "description": [], "signature": [ - "Readonly<{} & { value: string[]; operation: \"delete\" | \"add\" | \"set\"; field: \"tags\"; }> | Readonly<{} & { value: Readonly<{ frequency?: Readonly<{} & { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; }> | undefined; uuid?: string | undefined; } & { id: string; params: Record; group: string; }>[]; operation: \"add\" | \"set\"; field: \"actions\"; }> | Readonly<{} & { value: Readonly<{} & { interval: string; }>; operation: \"set\"; field: \"schedule\"; }> | Readonly<{} & { value: string | null; operation: \"set\"; field: \"throttle\"; }> | Readonly<{} & { value: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; operation: \"set\"; field: \"notifyWhen\"; }> | Readonly<{} & { value: Readonly<{ id?: string | undefined; } & { duration: number; rRule: Readonly<{ count?: number | undefined; interval?: number | undefined; freq?: 0 | 2 | 3 | 1 | undefined; until?: string | undefined; byweekday?: string[] | undefined; bymonthday?: number[] | undefined; bymonth?: number[] | undefined; } & { dtstart: string; tzid: string; }>; }>; operation: \"set\"; field: \"snoozeSchedule\"; }> | Readonly<{ value?: string[] | undefined; } & { operation: \"delete\"; field: \"snoozeSchedule\"; }> | Readonly<{} & { operation: \"set\"; field: \"apiKey\"; }>" + "Readonly<{} & { value: string[]; operation: \"delete\" | \"add\" | \"set\"; field: \"tags\"; }> | Readonly<{} & { value: Readonly<{ frequency?: Readonly<{} & { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; }> | undefined; uuid?: string | undefined; } & { id: string; params: Record; group: string; }>[]; operation: \"add\" | \"set\"; field: \"actions\"; }> | Readonly<{} & { value: Readonly<{} & { interval: string; }>; operation: \"set\"; field: \"schedule\"; }> | Readonly<{} & { value: string | null; operation: \"set\"; field: \"throttle\"; }> | Readonly<{} & { value: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; operation: \"set\"; field: \"notifyWhen\"; }> | Readonly<{} & { value: Readonly<{ id?: string | undefined; } & { duration: number; rRule: Readonly<{ count?: number | undefined; interval?: number | undefined; freq?: 0 | 2 | 3 | 1 | undefined; until?: string | undefined; byweekday?: string[] | undefined; bymonthday?: number[] | undefined; bymonth?: number[] | undefined; } & { dtstart: string; tzid: string; }>; }>; operation: \"set\"; field: \"snoozeSchedule\"; }> | Readonly<{ value?: string[] | undefined; } & { operation: \"delete\"; field: \"snoozeSchedule\"; }> | Readonly<{} & { operation: \"set\"; field: \"apiKey\"; }>" ], "path": "x-pack/plugins/alerting/server/application/rule/methods/bulk_edit/types/bulk_edit_rules_options.ts", "deprecated": false, @@ -5004,7 +4982,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; } & {}> | 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; } & {}> | 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; 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: ", "GetAlertSummaryParams", ") => Promise<", { @@ -5120,7 +5098,7 @@ "section": "def-server.AuditLogger", "text": "AuditLogger" }, - " | undefined; getTags: (params: Readonly<{ search?: string | undefined; perPage?: number | undefined; } & { page: number; }>) => Promise>; getScheduleFrequency: () => Promise>; getAlertFromRaw: (params: ", + " | undefined; getTags: (params: Readonly<{ search?: string | undefined; perPage?: number | undefined; } & { page: number; }>) => Promise>; getScheduleFrequency: () => Promise>; getAlertFromRaw: (params: ", "GetAlertFromRawParams", ") => ", { @@ -5216,6 +5194,70 @@ } ], "objects": [ + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG", + "type": "Object", + "tags": [], + "label": "DEFAULT_AAD_CONFIG", + "description": [], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG.context", + "type": "string", + "tags": [], + "label": "context", + "description": [], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG.mappings", + "type": "Object", + "tags": [], + "label": "mappings", + "description": [], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG.mappings.fieldMap", + "type": "Object", + "tags": [], + "label": "fieldMap", + "description": [], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [] + } + ] + }, + { + "parentPluginId": "alerting", + "id": "def-server.DEFAULT_AAD_CONFIG.shouldWrite", + "type": "boolean", + "tags": [], + "label": "shouldWrite", + "description": [], + "signature": [ + "true" + ], + "path": "x-pack/plugins/alerting/server/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-server.DEFAULT_ALERTS_ILM_POLICY", @@ -7781,6 +7823,31 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "alerting", + "id": "def-common.NotificationDelay", + "type": "Interface", + "tags": [], + "label": "NotificationDelay", + "description": [], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "alerting", + "id": "def-common.NotificationDelay.active", + "type": "number", + "tags": [], + "label": "active", + "description": [], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "alerting", "id": "def-common.Rule", @@ -8275,6 +8342,27 @@ "path": "x-pack/plugins/alerting/common/rule.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "alerting", + "id": "def-common.Rule.notificationDelay", + "type": "Object", + "tags": [], + "label": "notificationDelay", + "description": [], + "signature": [ + { + "pluginId": "alerting", + "scope": "common", + "docId": "kibAlertingPluginApi", + "section": "def-common.NotificationDelay", + "text": "NotificationDelay" + }, + " | undefined" + ], + "path": "x-pack/plugins/alerting/common/rule.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -9958,7 +10046,7 @@ "section": "def-common.ActionGroup", "text": "ActionGroup" }, - " ? groups : T extends Readonly<", + " ? groups : T extends Readonly<", { "pluginId": "@kbn/alerting-types", "scope": "common", @@ -9966,7 +10054,7 @@ "section": "def-common.ActionGroup", "text": "ActionGroup" }, - "> ? groups : never" + "> ? groups : never" ], "path": "packages/kbn-alerting-types/rule_type.ts", "deprecated": false, @@ -10318,7 +10406,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 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; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -10363,7 +10451,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; } & {}> | undefined; readonly state?: Record | undefined; }" + "{ 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; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -10378,7 +10466,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; } & {}> | 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; } & {}> | 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; 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; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, diff --git a/api_docs/alerting.mdx b/api_docs/alerting.mdx index e38c25b1345d7..fa7a709253c6d 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 825 | 1 | 794 | 51 | +| 834 | 1 | 803 | 51 | ## Client diff --git a/api_docs/apm.devdocs.json b/api_docs/apm.devdocs.json index 56fe4e2f68b03..826a1856a6cee 100644 --- a/api_docs/apm.devdocs.json +++ b/api_docs/apm.devdocs.json @@ -81,7 +81,7 @@ "label": "featureFlags", "description": [], "signature": [ - "{ agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; }" + "{ agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; }" ], "path": "x-pack/plugins/apm/public/index.ts", "deprecated": false, @@ -275,7 +275,7 @@ "Observable", "; searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; forceSyntheticSource: boolean; latestAgentVersionsUrl: string; serverless: Readonly<{} & { enabled: true; }>; serverlessOnboarding: boolean; managedServiceUrl: string; featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; }>; }>>; }" + "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; forceSyntheticSource: boolean; latestAgentVersionsUrl: string; serverless: Readonly<{} & { enabled: true; }>; serverlessOnboarding: boolean; managedServiceUrl: string; featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; }>; }>>; }" ], "path": "x-pack/plugins/apm/server/plugin.ts", "deprecated": false, @@ -450,7 +450,7 @@ "signature": [ "{ readonly enabled: boolean; readonly autoCreateApmDataView: boolean; readonly serviceMapEnabled: boolean; readonly serviceMapFingerprintBucketSize: number; readonly serviceMapFingerprintGlobalBucketSize: number; readonly serviceMapTraceIdBucketSize: number; readonly serviceMapTraceIdGlobalBucketSize: number; readonly serviceMapMaxTracesPerRequest: number; readonly serviceMapTerminateAfter: number; readonly serviceMapMaxTraces: number; readonly ui: Readonly<{} & { enabled: boolean; maxTraceItems: number; }>; readonly searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; readonly telemetryCollectionEnabled: boolean; readonly metricsInterval: number; readonly agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; readonly forceSyntheticSource: boolean; readonly latestAgentVersionsUrl: string; readonly serverless: Readonly<{} & { enabled: true; }>; readonly serverlessOnboarding: boolean; readonly managedServiceUrl: string; readonly featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; }>; }" + "; readonly telemetryCollectionEnabled: boolean; readonly metricsInterval: number; readonly agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; readonly forceSyntheticSource: boolean; readonly latestAgentVersionsUrl: string; readonly serverless: Readonly<{} & { enabled: true; }>; readonly serverlessOnboarding: boolean; readonly managedServiceUrl: string; readonly featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; }>; }" ], "path": "x-pack/plugins/apm/server/index.ts", "deprecated": false, @@ -1047,7 +1047,7 @@ "IngestGetPipelineResponse", " | undefined; }; diagnosticsPrivileges: { index: Record; cluster: Record; hasAllClusterPrivileges: boolean; hasAllIndexPrivileges: boolean; hasAllPrivileges: boolean; }; apmIndices: Readonly<{} & { error: string; metric: string; transaction: string; span: string; onboarding: string; sourcemap: string; }>; apmIndexTemplates: { name: string; isNonStandard: boolean; exists: boolean; }[]; fleetPackageInfo: { isInstalled: boolean; version?: string | undefined; }; kibanaVersion: string; elasticsearchVersion: string; apmEvents: ", + ">; cluster: Record; hasAllClusterPrivileges: boolean; hasAllIndexPrivileges: boolean; hasAllPrivileges: boolean; }; apmIndices: Readonly<{} & { error: string; span: string; metric: string; transaction: string; onboarding: string; sourcemap: string; }>; apmIndexTemplates: { name: string; isNonStandard: boolean; exists: boolean; }[]; fleetPackageInfo: { isInstalled: boolean; version?: string | undefined; }; kibanaVersion: string; elasticsearchVersion: string; apmEvents: ", "ApmEvent", "[]; invalidIndices?: ", "IndiciesItem", @@ -3993,7 +3993,7 @@ "PartialC", "; }> | undefined; handler: ({}: ", "APMRouteHandlerResources", - " & { params: { body: { readonly error?: string | undefined; readonly metric?: string | undefined; readonly transaction?: string | undefined; readonly span?: string | undefined; readonly onboarding?: string | undefined; readonly sourcemap?: string | undefined; }; }; }) => Promise<", + " & { params: { body: { readonly error?: string | undefined; readonly span?: string | undefined; readonly metric?: string | undefined; readonly transaction?: string | undefined; readonly onboarding?: string | undefined; readonly sourcemap?: string | undefined; }; }; }) => Promise<", { "pluginId": "@kbn/core-saved-objects-common", "scope": "common", @@ -4005,7 +4005,7 @@ "APMRouteCreateOptions", "; \"GET /internal/apm/settings/apm-indices\": { endpoint: \"GET /internal/apm/settings/apm-indices\"; params?: undefined; handler: ({}: ", "APMRouteHandlerResources", - ") => Promise>; } & ", + ") => Promise>; } & ", "APMRouteCreateOptions", "; \"GET /internal/apm/settings/apm-index-settings\": { endpoint: \"GET /internal/apm/settings/apm-index-settings\"; params?: undefined; handler: ({}: ", "APMRouteHandlerResources", @@ -7848,7 +7848,7 @@ "Observable", "; searchAggregatedTransactions: ", "SearchAggregatedTransactionSetting", - "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; forceSyntheticSource: boolean; latestAgentVersionsUrl: string; serverless: Readonly<{} & { enabled: true; }>; serverlessOnboarding: boolean; managedServiceUrl: string; featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; }>; }>>" + "; telemetryCollectionEnabled: boolean; metricsInterval: number; agent: Readonly<{} & { migrations: Readonly<{} & { enabled: boolean; }>; }>; forceSyntheticSource: boolean; latestAgentVersionsUrl: string; serverless: Readonly<{} & { enabled: true; }>; serverlessOnboarding: boolean; managedServiceUrl: string; featureFlags: Readonly<{} & { agentConfigurationAvailable: boolean; configurableIndicesAvailable: boolean; infrastructureTabAvailable: boolean; infraUiAvailable: boolean; migrationToFleetAvailable: boolean; sourcemapApiAvailable: boolean; storageExplorerAvailable: boolean; profilingIntegrationAvailable: boolean; }>; }>>" ], "path": "x-pack/plugins/apm/server/types.ts", "deprecated": false, diff --git a/api_docs/apm.mdx b/api_docs/apm.mdx index 97004593fa23a..7436d47e82122 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-01-04 +date: 2024-01-25 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 57fe58d681f92..8fbb498826123 100644 --- a/api_docs/apm_data_access.devdocs.json +++ b/api_docs/apm_data_access.devdocs.json @@ -22,7 +22,7 @@ "label": "APMDataAccessConfig", "description": [], "signature": [ - "{ readonly indices: Readonly<{} & { error: string; metric: string; transaction: string; span: string; onboarding: string; sourcemap: string; }>; }" + "{ readonly indices: Readonly<{} & { error: string; span: string; metric: string; transaction: string; onboarding: string; sourcemap: string; }>; }" ], "path": "x-pack/plugins/apm_data_access/server/index.ts", "deprecated": false, @@ -37,7 +37,7 @@ "label": "APMIndices", "description": [], "signature": [ - "{ readonly error: string; readonly metric: string; readonly transaction: string; readonly span: string; readonly onboarding: string; readonly sourcemap: string; }" + "{ readonly error: string; readonly span: string; readonly metric: string; readonly transaction: string; readonly onboarding: string; readonly sourcemap: string; }" ], "path": "x-pack/plugins/apm_data_access/server/index.ts", "deprecated": false, @@ -65,7 +65,7 @@ "label": "apmIndicesFromConfigFile", "description": [], "signature": [ - "{ readonly error: string; readonly metric: string; readonly transaction: string; readonly span: string; readonly onboarding: string; readonly sourcemap: string; }" + "{ readonly error: string; readonly span: string; readonly metric: string; readonly transaction: string; readonly onboarding: string; readonly sourcemap: string; }" ], "path": "x-pack/plugins/apm_data_access/server/types.ts", "deprecated": false, @@ -87,7 +87,7 @@ "section": "def-common.SavedObjectsClientContract", "text": "SavedObjectsClientContract" }, - ") => Promise>" + ") => Promise>" ], "path": "x-pack/plugins/apm_data_access/server/types.ts", "deprecated": false, diff --git a/api_docs/apm_data_access.mdx b/api_docs/apm_data_access.mdx index 0967e55be0f9f..d066e1de53db8 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'apmDataAccess'] --- import apmDataAccessObj from './apm_data_access.devdocs.json'; diff --git a/api_docs/asset_manager.mdx b/api_docs/asset_manager.mdx index 1cd598a4a0787..2385a915b4a70 100644 --- a/api_docs/asset_manager.mdx +++ b/api_docs/asset_manager.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/assetManager title: "assetManager" image: https://source.unsplash.com/400x175/?github description: API docs for the assetManager plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'assetManager'] --- import assetManagerObj from './asset_manager.devdocs.json'; diff --git a/api_docs/banners.mdx b/api_docs/banners.mdx index fcfe454cd2efb..611615fdb4550 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-01-04 +date: 2024-01-25 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 42b81bc4929d3..c3ed76da29606 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-01-04 +date: 2024-01-25 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 569b7601fc2e4..9f357b5e75baa 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'canvas'] --- import canvasObj from './canvas.devdocs.json'; diff --git a/api_docs/cases.devdocs.json b/api_docs/cases.devdocs.json index ce739ea2399bb..96bad19d030d8 100644 --- a/api_docs/cases.devdocs.json +++ b/api_docs/cases.devdocs.json @@ -70,7 +70,7 @@ "section": "def-public.ICasesDeepLinkId", "text": "ICasesDeepLinkId" }, - ", Partial>> | undefined; }) => { id: \"cases\"; path: string; deepLinks: ({ id: \"cases_create\"; path: string; title: string | T[\"title\"]; keywords?: T[\"keywords\"] | undefined; navLinkStatus?: T[\"navLinkStatus\"] | undefined; searchable?: T[\"searchable\"] | undefined; category?: T[\"category\"] | undefined; order?: T[\"order\"] | undefined; tooltip?: T[\"tooltip\"] | undefined; euiIconType?: T[\"euiIconType\"] | undefined; icon?: T[\"icon\"] | undefined; deepLinks?: T[\"deepLinks\"] | undefined; } | { id: \"cases_configure\"; path: string; title: string | T[\"title\"]; keywords?: T[\"keywords\"] | undefined; navLinkStatus?: T[\"navLinkStatus\"] | undefined; searchable?: T[\"searchable\"] | undefined; category?: T[\"category\"] | undefined; order?: T[\"order\"] | undefined; tooltip?: T[\"tooltip\"] | undefined; euiIconType?: T[\"euiIconType\"] | undefined; icon?: T[\"icon\"] | undefined; deepLinks?: T[\"deepLinks\"] | undefined; })[]; title: string | T[\"title\"]; keywords?: T[\"keywords\"] | undefined; navLinkStatus?: T[\"navLinkStatus\"] | undefined; searchable?: T[\"searchable\"] | undefined; category?: T[\"category\"] | undefined; order?: T[\"order\"] | undefined; tooltip?: T[\"tooltip\"] | undefined; euiIconType?: T[\"euiIconType\"] | undefined; icon?: T[\"icon\"] | undefined; }" + ", Partial>> | undefined; }) => { id: \"cases\"; path: string; deepLinks: ({ id: \"cases_create\"; path: string; title: string; keywords?: T[\"keywords\"] | undefined; navLinkStatus?: T[\"navLinkStatus\"] | undefined; searchable?: T[\"searchable\"] | undefined; category?: T[\"category\"] | undefined; order?: T[\"order\"] | undefined; tooltip?: T[\"tooltip\"] | undefined; euiIconType?: T[\"euiIconType\"] | undefined; icon?: T[\"icon\"] | undefined; deepLinks?: T[\"deepLinks\"] | undefined; } | { id: \"cases_configure\"; path: string; title: string; keywords?: T[\"keywords\"] | undefined; navLinkStatus?: T[\"navLinkStatus\"] | undefined; searchable?: T[\"searchable\"] | undefined; category?: T[\"category\"] | undefined; order?: T[\"order\"] | undefined; tooltip?: T[\"tooltip\"] | undefined; euiIconType?: T[\"euiIconType\"] | undefined; icon?: T[\"icon\"] | undefined; deepLinks?: T[\"deepLinks\"] | undefined; })[]; title: string; keywords?: T[\"keywords\"] | undefined; navLinkStatus?: T[\"navLinkStatus\"] | undefined; searchable?: T[\"searchable\"] | undefined; category?: T[\"category\"] | undefined; order?: T[\"order\"] | undefined; tooltip?: T[\"tooltip\"] | undefined; euiIconType?: T[\"euiIconType\"] | undefined; icon?: T[\"icon\"] | undefined; }" ], "path": "x-pack/plugins/cases/public/common/navigation/deep_links.ts", "deprecated": false, @@ -386,7 +386,7 @@ "CustomFieldTypes", ".TOGGLE; value: boolean | null; } | { key: string; type: ", "CustomFieldTypes", - ".TEXT; value: string | null; })[] | undefined; }, \"description\" | \"title\"> | undefined; }" + ".TEXT; value: string | null; })[] | undefined; }, \"title\" | \"description\"> | undefined; }" ], "path": "x-pack/plugins/cases/public/client/ui/get_create_case_flyout.tsx", "deprecated": false, @@ -512,7 +512,7 @@ "section": "def-common.CaseSeverity", "text": "CaseSeverity" }, - "[] | undefined; assignees?: string | string[] | undefined; reporters?: string | string[] | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; from?: string | undefined; search?: string | undefined; searchFields?: \"description\" | \"title\" | (\"description\" | \"title\")[] | undefined; sortField?: \"category\" | \"title\" | \"createdAt\" | \"updatedAt\" | \"status\" | \"severity\" | \"closedAt\" | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; to?: string | undefined; owner?: string | string[] | undefined; category?: string | string[] | undefined; } & Partial<", + "[] | undefined; assignees?: string | string[] | undefined; reporters?: string | string[] | undefined; defaultSearchOperator?: \"AND\" | \"OR\" | undefined; from?: string | undefined; search?: string | undefined; searchFields?: \"title\" | \"description\" | (\"title\" | \"description\")[] | undefined; sortField?: \"title\" | \"category\" | \"createdAt\" | \"updatedAt\" | \"status\" | \"severity\" | \"closedAt\" | undefined; sortOrder?: \"asc\" | \"desc\" | undefined; to?: string | undefined; owner?: string | string[] | undefined; category?: string | string[] | undefined; } & Partial<", "Pagination", ">, signal?: AbortSignal | undefined) => Promise<", { diff --git a/api_docs/cases.mdx b/api_docs/cases.mdx index b3d7095d46904..bb31d56820c91 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cases'] --- import casesObj from './cases.devdocs.json'; diff --git a/api_docs/charts.devdocs.json b/api_docs/charts.devdocs.json index 7a0f646988360..3416ca63a2dc0 100644 --- a/api_docs/charts.devdocs.json +++ b/api_docs/charts.devdocs.json @@ -1283,12 +1283,19 @@ { "parentPluginId": "charts", "id": "def-public.Labels.rotate", - "type": "number", + "type": "CompoundType", "tags": [], "label": "rotate", "description": [], "signature": [ - "number | undefined" + { + "pluginId": "charts", + "scope": "common", + "docId": "kibChartsPluginApi", + "section": "def-common.LabelRotation", + "text": "LabelRotation" + }, + " | undefined" ], "path": "src/plugins/charts/common/types.ts", "deprecated": false, @@ -1609,7 +1616,7 @@ "label": "LabelRotation", "description": [], "signature": [ - "number" + "0 | 90 | 75 | 270" ], "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, @@ -1673,7 +1680,7 @@ "label": "LabelRotation", "description": [], "signature": [ - "{ readonly Horizontal: number; readonly Vertical: number; readonly Angled: number; readonly VerticalRotation: number; }" + "{ readonly Horizontal: 0; readonly Vertical: 90; readonly Angled: 75; readonly VerticalRotation: 270; }" ], "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, @@ -3125,12 +3132,19 @@ { "parentPluginId": "charts", "id": "def-common.Labels.rotate", - "type": "number", + "type": "CompoundType", "tags": [], "label": "rotate", "description": [], "signature": [ - "number | undefined" + { + "pluginId": "charts", + "scope": "common", + "docId": "kibChartsPluginApi", + "section": "def-common.LabelRotation", + "text": "LabelRotation" + }, + " | undefined" ], "path": "src/plugins/charts/common/types.ts", "deprecated": false, @@ -3344,7 +3358,7 @@ "label": "AllowedChartOverrides", "description": [], "signature": [ - "{ chart?: { description?: string | undefined; title?: string | undefined; } | undefined; }" + "{ chart?: { title?: string | undefined; description?: string | undefined; } | undefined; }" ], "path": "src/plugins/charts/common/static/overrides/settings.ts", "deprecated": false, @@ -3487,7 +3501,7 @@ "label": "LabelRotation", "description": [], "signature": [ - "number" + "0 | 90 | 75 | 270" ], "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, @@ -3597,7 +3611,7 @@ "label": "LabelRotation", "description": [], "signature": [ - "{ readonly Horizontal: number; readonly Vertical: number; readonly Angled: number; readonly VerticalRotation: number; }" + "{ readonly Horizontal: 0; readonly Vertical: 90; readonly Angled: 75; readonly VerticalRotation: 270; }" ], "path": "src/plugins/charts/common/static/components/collections.ts", "deprecated": false, diff --git a/api_docs/charts.mdx b/api_docs/charts.mdx index 1b368f3d45354..6292074538642 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-01-04 +date: 2024-01-25 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 1b9f49f8192d6..6c24d75ce81bb 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-01-04 +date: 2024-01-25 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 2f280ede33377..10d5ec0641eaf 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-01-04 +date: 2024-01-25 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 e5983addb5003..f9382c72e2dc8 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-01-04 +date: 2024-01-25 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 6974034289448..a876aa48509ec 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-01-04 +date: 2024-01-25 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 28df21b79fb93..fff4c1731fad9 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'cloudSecurityPosture'] --- import cloudSecurityPostureObj from './cloud_security_posture.devdocs.json'; diff --git a/api_docs/console.devdocs.json b/api_docs/console.devdocs.json index 35dfc2c7cf34a..c1de41890cb4e 100644 --- a/api_docs/console.devdocs.json +++ b/api_docs/console.devdocs.json @@ -26,7 +26,13 @@ "text": "Plugin" }, "" ], "path": "src/plugins/console/public/plugin.ts", @@ -89,7 +95,13 @@ "text": "CoreSetup" }, ", { devTools, home, share, usageCollection }: ", - "AppSetupUIPluginDependencies", + { + "pluginId": "console", + "scope": "public", + "docId": "kibConsolePluginApi", + "section": "def-public.AppSetupUIPluginDependencies", + "text": "AppSetupUIPluginDependencies" + }, ") => ", { "pluginId": "console", @@ -133,7 +145,13 @@ "label": "{ devTools, home, share, usageCollection }", "description": [], "signature": [ - "AppSetupUIPluginDependencies" + { + "pluginId": "console", + "scope": "public", + "docId": "kibConsolePluginApi", + "section": "def-public.AppSetupUIPluginDependencies", + "text": "AppSetupUIPluginDependencies" + } ], "path": "src/plugins/console/public/plugin.ts", "deprecated": false, @@ -151,12 +169,79 @@ "label": "start", "description": [], "signature": [ - "() => void" + "(core: ", + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "common", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-common.CoreStart", + "text": "CoreStart" + }, + ", deps: ", + { + "pluginId": "console", + "scope": "public", + "docId": "kibConsolePluginApi", + "section": "def-public.AppStartUIPluginDependencies", + "text": "AppStartUIPluginDependencies" + }, + ") => { renderEmbeddableConsole: (props: ", + { + "pluginId": "console", + "scope": "public", + "docId": "kibConsolePluginApi", + "section": "def-public.EmbeddableConsoleProps", + "text": "EmbeddableConsoleProps" + }, + ") => React.ReactElement> | null; } | { renderEmbeddableConsole?: undefined; }" ], "path": "src/plugins/console/public/plugin.ts", "deprecated": false, "trackAdoption": false, - "children": [], + "children": [ + { + "parentPluginId": "console", + "id": "def-public.ConsoleUIPlugin.start.$1", + "type": "Object", + "tags": [], + "label": "core", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-lifecycle-browser", + "scope": "common", + "docId": "kibKbnCoreLifecycleBrowserPluginApi", + "section": "def-common.CoreStart", + "text": "CoreStart" + } + ], + "path": "src/plugins/console/public/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "console", + "id": "def-public.ConsoleUIPlugin.start.$2", + "type": "Object", + "tags": [], + "label": "deps", + "description": [], + "signature": [ + { + "pluginId": "console", + "scope": "public", + "docId": "kibConsolePluginApi", + "section": "def-public.AppStartUIPluginDependencies", + "text": "AppStartUIPluginDependencies" + } + ], + "path": "src/plugins/console/public/plugin.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], "returnComment": [] } ], @@ -165,13 +250,235 @@ ], "functions": [], "interfaces": [ + { + "parentPluginId": "console", + "id": "def-public.AppSetupUIPluginDependencies", + "type": "Interface", + "tags": [], + "label": "AppSetupUIPluginDependencies", + "description": [], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "console", + "id": "def-public.AppSetupUIPluginDependencies.home", + "type": "Object", + "tags": [], + "label": "home", + "description": [], + "signature": [ + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.HomePublicPluginSetup", + "text": "HomePublicPluginSetup" + }, + " | undefined" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "console", + "id": "def-public.AppSetupUIPluginDependencies.devTools", + "type": "Object", + "tags": [], + "label": "devTools", + "description": [], + "signature": [ + { + "pluginId": "devTools", + "scope": "public", + "docId": "kibDevToolsPluginApi", + "section": "def-public.DevToolsSetup", + "text": "DevToolsSetup" + } + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "console", + "id": "def-public.AppSetupUIPluginDependencies.share", + "type": "CompoundType", + "tags": [], + "label": "share", + "description": [], + "signature": [ + "{ register: (shareMenuProvider: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.ShareMenuProvider", + "text": "ShareMenuProvider" + }, + ") => void; } & { url: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.BrowserUrlService", + "text": "BrowserUrlService" + }, + "; navigate(options: ", + "RedirectOptions", + "<", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + ">): void; setAnonymousAccessServiceProvider: (provider: () => ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.AnonymousAccessServiceContract", + "text": "AnonymousAccessServiceContract" + }, + ") => void; }" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "console", + "id": "def-public.AppSetupUIPluginDependencies.usageCollection", + "type": "Object", + "tags": [], + "label": "usageCollection", + "description": [], + "signature": [ + { + "pluginId": "usageCollection", + "scope": "public", + "docId": "kibUsageCollectionPluginApi", + "section": "def-public.UsageCollectionSetup", + "text": "UsageCollectionSetup" + }, + " | undefined" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "console", + "id": "def-public.AppStartUIPluginDependencies", + "type": "Interface", + "tags": [], + "label": "AppStartUIPluginDependencies", + "description": [], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "console", + "id": "def-public.AppStartUIPluginDependencies.home", + "type": "Object", + "tags": [], + "label": "home", + "description": [], + "signature": [ + { + "pluginId": "home", + "scope": "public", + "docId": "kibHomePluginApi", + "section": "def-public.HomePublicPluginStart", + "text": "HomePublicPluginStart" + }, + " | undefined" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "console", + "id": "def-public.AppStartUIPluginDependencies.share", + "type": "CompoundType", + "tags": [], + "label": "share", + "description": [], + "signature": [ + "{ toggleShareContextMenu: (options: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.ShowShareMenuOptions", + "text": "ShowShareMenuOptions" + }, + ") => void; } & { url: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.BrowserUrlService", + "text": "BrowserUrlService" + }, + "; navigate(options: ", + "RedirectOptions", + "<", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + ">): void; }" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "console", + "id": "def-public.AppStartUIPluginDependencies.usageCollection", + "type": "Object", + "tags": [], + "label": "usageCollection", + "description": [], + "signature": [ + { + "pluginId": "usageCollection", + "scope": "public", + "docId": "kibUsageCollectionPluginApi", + "section": "def-public.UsageCollectionStart", + "text": "UsageCollectionStart" + }, + " | undefined" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "console", "id": "def-public.ConsolePluginSetup", "type": "Interface", "tags": [], "label": "ConsolePluginSetup", - "description": [], + "description": [ + "\nConsole plugin's setup service object" + ], "path": "src/plugins/console/public/types/plugin_dependencies.ts", "deprecated": false, "trackAdoption": false, @@ -182,7 +489,9 @@ "type": "Object", "tags": [], "label": "locator", - "description": [], + "description": [ + "\nPublic locator for the console UI" + ], "signature": [ { "pluginId": "share", @@ -208,6 +517,71 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "console", + "id": "def-public.ConsolePluginStart", + "type": "Interface", + "tags": [], + "label": "ConsolePluginStart", + "description": [ + "\nConsole plugin's start service object" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "console", + "id": "def-public.ConsolePluginStart.renderEmbeddableConsole", + "type": "Function", + "tags": [], + "label": "renderEmbeddableConsole", + "description": [ + "\nrenderEmbeddableConsole is available if the console UI is enabled. This function can be called to\nrender an embeddable version of the developer console on the page." + ], + "signature": [ + "((props?: ", + { + "pluginId": "console", + "scope": "public", + "docId": "kibConsolePluginApi", + "section": "def-public.EmbeddableConsoleProps", + "text": "EmbeddableConsoleProps" + }, + " | undefined) => React.ReactElement> | null) | undefined" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "console", + "id": "def-public.ConsolePluginStart.renderEmbeddableConsole.$1", + "type": "Object", + "tags": [], + "label": "props", + "description": [], + "signature": [ + { + "pluginId": "console", + "scope": "public", + "docId": "kibConsolePluginApi", + "section": "def-public.EmbeddableConsoleProps", + "text": "EmbeddableConsoleProps" + }, + " | undefined" + ], + "path": "src/plugins/console/public/types/plugin_dependencies.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "console", "id": "def-public.ConsoleUILocatorParams", @@ -252,6 +626,38 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "console", + "id": "def-public.EmbeddableConsoleProps", + "type": "Interface", + "tags": [], + "label": "EmbeddableConsoleProps", + "description": [ + "\nEmbeddableConsoleProps are optional props used when rendering the embeddable developer console." + ], + "path": "src/plugins/console/public/types/embeddable_console.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "console", + "id": "def-public.EmbeddableConsoleProps.size", + "type": "CompoundType", + "tags": [], + "label": "size", + "description": [ + "\nThe default height of the content area." + ], + "signature": [ + "\"m\" | \"s\" | \"l\" | undefined" + ], + "path": "src/plugins/console/public/types/embeddable_console.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], diff --git a/api_docs/console.mdx b/api_docs/console.mdx index 9da7224fcc9dc..bc7534d64656e 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'console'] --- import consoleObj from './console.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/platform-deployment-management](https://github.com/orgs/elasti | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 13 | 0 | 13 | 1 | +| 29 | 0 | 23 | 0 | ## Client diff --git a/api_docs/content_management.mdx b/api_docs/content_management.mdx index 644a576b9a31b..e759ebf77c94b 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'contentManagement'] --- import contentManagementObj from './content_management.devdocs.json'; diff --git a/api_docs/controls.mdx b/api_docs/controls.mdx index 6d149d7f848d3..5f106ae1a95cf 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'controls'] --- import controlsObj from './controls.devdocs.json'; diff --git a/api_docs/custom_integrations.mdx b/api_docs/custom_integrations.mdx index 6c513a57370b2..826327800be55 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'customIntegrations'] --- import customIntegrationsObj from './custom_integrations.devdocs.json'; diff --git a/api_docs/dashboard.devdocs.json b/api_docs/dashboard.devdocs.json index 1c30b5038e427..84ab20dde07f6 100644 --- a/api_docs/dashboard.devdocs.json +++ b/api_docs/dashboard.devdocs.json @@ -2037,7 +2037,7 @@ "\nFor BWC reasons, dashboard state is stored with panels as an array instead of a map" ], "signature": [ - "{ id?: string | undefined; tags?: string[] | undefined; description?: string | undefined; title?: string | undefined; version?: string | undefined; query?: ", + "{ id?: string | undefined; tags?: string[] | undefined; title?: string | undefined; description?: string | undefined; version?: string | undefined; query?: ", { "pluginId": "@kbn/es-query", "scope": "common", diff --git a/api_docs/dashboard.mdx b/api_docs/dashboard.mdx index 8b12f4b0b3825..c98bc50c09b49 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-01-04 +date: 2024-01-25 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 ceed4cf64c766..0e61d816f13a5 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-01-04 +date: 2024-01-25 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 a1bb897ebee3a..4fa861ea50f7c 100644 --- a/api_docs/data.devdocs.json +++ b/api_docs/data.devdocs.json @@ -5310,6 +5310,51 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "data", + "id": "def-public.AggFunctionsMapping.aggIpPrefix", + "type": "Object", + "tags": [], + "label": "aggIpPrefix", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionFunctionDefinition", + "text": "ExpressionFunctionDefinition" + }, + "<\"aggIpPrefix\", any, Arguments, ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.AggExpressionType", + "text": "AggExpressionType" + }, + ", ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExecutionContext", + "text": "ExecutionContext" + }, + "<", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Adapters", + "text": "Adapters" + }, + ">>" + ], + "path": "src/plugins/data/common/search/aggs/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "data", "id": "def-public.AggFunctionsMapping.aggIpRange", @@ -7484,6 +7529,20 @@ "path": "src/plugins/data_views/common/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-public.GetFieldsOptions.forceRefresh", + "type": "CompoundType", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -10636,7 +10695,7 @@ "section": "def-common.Datatable", "text": "Datatable" }, - ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions) => string" + ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }: CSVOptions) => string" ], "path": "src/plugins/data/public/index.ts", "deprecated": false, @@ -12157,10 +12216,6 @@ "plugin": "graph", "path": "x-pack/plugins/graph/public/plugin.ts" }, - { - "plugin": "infra", - "path": "x-pack/plugins/infra/public/hooks/use_kibana_index_patterns.ts" - }, { "plugin": "inputControlVis", "path": "src/plugins/input_control_vis/public/control/list_control_factory.ts" @@ -12820,6 +12875,54 @@ ], "returnComment": [] }, + { + "parentPluginId": "data", + "id": "def-server.DataView.getEtag", + "type": "Function", + "tags": [], + "label": "getEtag", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "data", + "id": "def-server.DataView.setEtag", + "type": "Function", + "tags": [], + "label": "setEtag", + "description": [], + "signature": [ + "(etag: string | undefined) => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-server.DataView.setEtag.$1", + "type": "string", + "tags": [], + "label": "etag", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, { "parentPluginId": "data", "id": "def-server.DataView.getComputedFields", @@ -14299,7 +14402,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise" + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -14342,6 +14445,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-server.DataViewsService.refreshFields.$3", + "type": "boolean", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -17609,7 +17727,7 @@ "section": "def-common.Datatable", "text": "Datatable" }, - ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions) => string" + ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }: CSVOptions) => string" ], "path": "src/plugins/data/server/index.ts", "deprecated": false, @@ -18981,6 +19099,54 @@ ], "returnComment": [] }, + { + "parentPluginId": "data", + "id": "def-common.DataView.getEtag", + "type": "Function", + "tags": [], + "label": "getEtag", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "data", + "id": "def-common.DataView.setEtag", + "type": "Function", + "tags": [], + "label": "setEtag", + "description": [], + "signature": [ + "(etag: string | undefined) => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.DataView.setEtag.$1", + "type": "string", + "tags": [], + "label": "etag", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, { "parentPluginId": "data", "id": "def-common.DataView.getComputedFields", @@ -21331,7 +21497,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise" + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -21374,6 +21540,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.DataViewsService.refreshFields.$3", + "type": "boolean", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -22429,7 +22610,7 @@ "section": "def-common.Datatable", "text": "Datatable" }, - ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }: CSVOptions) => string" + ", { csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }: CSVOptions) => string" ], "path": "src/plugins/data/common/exports/export_csv.tsx", "deprecated": false, @@ -22461,7 +22642,7 @@ "id": "def-common.datatableToCSV.$2", "type": "Object", "tags": [], - "label": "{ csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues }", + "label": "{ csvSeparator, quoteValues, formatFactory, raw, escapeFormulaValues, columnsSorting }", "description": [], "signature": [ "CSVOptions" @@ -23555,6 +23736,20 @@ "path": "src/plugins/data_views/common/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.GetFieldsOptions.forceRefresh", + "type": "CompoundType", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -24682,7 +24877,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise; fieldArrayToMap: (fields: ", + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise; fieldArrayToMap: (fields: ", { "pluginId": "dataViews", "scope": "common", diff --git a/api_docs/data.mdx b/api_docs/data.mdx index 59da5a91e2c55..d646832309bdd 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data'] --- import dataObj from './data.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 | |-------------------|-----------|------------------------|-----------------| -| 3188 | 31 | 2537 | 22 | +| 3233 | 31 | 2582 | 23 | ## Client diff --git a/api_docs/data_query.mdx b/api_docs/data_query.mdx index 57b16fdff130c..1a7f6abc0fcdc 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.query'] --- import dataQueryObj from './data_query.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 | |-------------------|-----------|------------------------|-----------------| -| 3188 | 31 | 2537 | 22 | +| 3233 | 31 | 2582 | 23 | ## Client diff --git a/api_docs/data_search.devdocs.json b/api_docs/data_search.devdocs.json index cfa083d446c5c..d8432bd6b08a1 100644 --- a/api_docs/data_search.devdocs.json +++ b/api_docs/data_search.devdocs.json @@ -11686,6 +11686,23 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.aggIpPrefix", + "type": "Function", + "tags": [], + "label": "aggIpPrefix", + "description": [], + "signature": [ + "() => FunctionDefinition" + ], + "path": "src/plugins/data/common/search/aggs/buckets/ip_prefix_fn.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.aggIpRange", @@ -13657,6 +13674,46 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.getEsqlFn", + "type": "Function", + "tags": [], + "label": "getEsqlFn", + "description": [], + "signature": [ + "({ getStartDependencies }: EsqlFnArguments) => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.EsqlExpressionFunctionDefinition", + "text": "EsqlExpressionFunctionDefinition" + } + ], + "path": "src/plugins/data/common/search/expressions/esql.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.getEsqlFn.$1", + "type": "Object", + "tags": [], + "label": "{ getStartDependencies }", + "description": [], + "signature": [ + "EsqlFnArguments" + ], + "path": "src/plugins/data/common/search/expressions/esql.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.getFilterBucketAgg", @@ -14064,6 +14121,39 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.getIpPrefixBucketAgg", + "type": "Function", + "tags": [], + "label": "getIpPrefixBucketAgg", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.BucketAggType", + "text": "BucketAggType" + }, + "<", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IBucketAggConfig", + "text": "IBucketAggConfig" + }, + ">" + ], + "path": "src/plugins/data/common/search/aggs/buckets/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.getIpRangeBucketAgg", @@ -15499,6 +15589,60 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixToAst", + "type": "Function", + "tags": [], + "label": "ipPrefixToAst", + "description": [], + "signature": [ + "(ipPrefix: ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpPrefix", + "text": "IpPrefix" + }, + ") => ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionAstExpression", + "text": "ExpressionAstExpression" + } + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix_to_ast.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.ipPrefixToAst.$1", + "type": "Object", + "tags": [], + "label": "ipPrefix", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpPrefix", + "text": "IpPrefix" + } + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix_to_ast.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.ipRangeToAst", @@ -17362,6 +17506,51 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "data", + "id": "def-common.AggFunctionsMapping.aggIpPrefix", + "type": "Object", + "tags": [], + "label": "aggIpPrefix", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionFunctionDefinition", + "text": "ExpressionFunctionDefinition" + }, + "<\"aggIpPrefix\", any, Arguments, ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.AggExpressionType", + "text": "AggExpressionType" + }, + ", ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExecutionContext", + "text": "ExecutionContext" + }, + "<", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Adapters", + "text": "Adapters" + }, + ">>" + ], + "path": "src/plugins/data/common/search/aggs/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "data", "id": "def-common.AggFunctionsMapping.aggIpRange", @@ -21051,6 +21240,69 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.AggParamsIpPrefix", + "type": "Interface", + "tags": [], + "label": "AggParamsIpPrefix", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.AggParamsIpPrefix", + "text": "AggParamsIpPrefix" + }, + " extends ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.BaseAggParams", + "text": "BaseAggParams" + } + ], + "path": "src/plugins/data/common/search/aggs/buckets/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.AggParamsIpPrefix.field", + "type": "string", + "tags": [], + "label": "field", + "description": [], + "path": "src/plugins/data/common/search/aggs/buckets/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.AggParamsIpPrefix.ipPrefix", + "type": "Object", + "tags": [], + "label": "ipPrefix", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpPrefix", + "text": "IpPrefix" + }, + " | undefined" + ], + "path": "src/plugins/data/common/search/aggs/buckets/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.AggParamsIpRange", @@ -21175,6 +21427,26 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "data", + "id": "def-common.AggParamsMapping.BUCKET_TYPES.IP_PREFIX", + "type": "Object", + "tags": [], + "label": "[BUCKET_TYPES.IP_PREFIX]", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.AggParamsIpPrefix", + "text": "AggParamsIpPrefix" + } + ], + "path": "src/plugins/data/common/search/aggs/types.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "data", "id": "def-common.AggParamsMapping.BUCKET_TYPES.IP_RANGE", @@ -27549,34 +27821,40 @@ }, { "parentPluginId": "data", - "id": "def-common.IpRange", + "id": "def-common.IpPrefix", "type": "Interface", "tags": [], - "label": "IpRange", + "label": "IpPrefix", "description": [], - "path": "src/plugins/data/common/search/expressions/ip_range.ts", + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "data", - "id": "def-common.IpRange.from", - "type": "string", + "id": "def-common.IpPrefix.prefixLength", + "type": "number", "tags": [], - "label": "from", + "label": "prefixLength", "description": [], - "path": "src/plugins/data/common/search/expressions/ip_range.ts", + "signature": [ + "number | undefined" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "data", - "id": "def-common.IpRange.to", - "type": "string", + "id": "def-common.IpPrefix.isIpv6", + "type": "CompoundType", "tags": [], - "label": "to", + "label": "isIpv6", "description": [], - "path": "src/plugins/data/common/search/expressions/ip_range.ts", + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", "deprecated": false, "trackAdoption": false } @@ -27585,21 +27863,57 @@ }, { "parentPluginId": "data", - "id": "def-common.ISearchClient", + "id": "def-common.IpRange", "type": "Interface", "tags": [], - "label": "ISearchClient", + "label": "IpRange", "description": [], - "path": "src/plugins/data/common/search/types.ts", + "path": "src/plugins/data/common/search/expressions/ip_range.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "data", - "id": "def-common.ISearchClient.search", - "type": "Function", + "id": "def-common.IpRange.from", + "type": "string", "tags": [], - "label": "search", + "label": "from", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_range.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.IpRange.to", + "type": "string", + "tags": [], + "label": "to", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_range.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-common.ISearchClient", + "type": "Interface", + "tags": [], + "label": "ISearchClient", + "description": [], + "path": "src/plugins/data/common/search/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.ISearchClient.search", + "type": "Function", + "tags": [], + "label": "search", "description": [], "signature": [ ">" + ], + "path": "src/plugins/data/common/search/expressions/esql.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.EsQuerySortValue", @@ -32099,6 +32466,60 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.ExpressionFunctionIpPrefix", + "type": "Type", + "tags": [], + "label": "ExpressionFunctionIpPrefix", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExpressionFunctionDefinition", + "text": "ExpressionFunctionDefinition" + }, + "<\"ipPrefix\", null, ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpPrefix", + "text": "IpPrefix" + }, + ", ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpPrefixOutput", + "text": "IpPrefixOutput" + }, + ", ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExecutionContext", + "text": "ExecutionContext" + }, + "<", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Adapters", + "text": "Adapters" + }, + ">>" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.ExpressionFunctionIpRange", @@ -33215,6 +33636,43 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.IpPrefixKey", + "type": "Type", + "tags": [], + "label": "IpPrefixKey", + "description": [], + "signature": [ + "IpPrefixAggKey" + ], + "path": "src/plugins/data/common/search/aggs/buckets/lib/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "data", + "id": "def-common.IpPrefixOutput", + "type": "Type", + "tags": [], + "label": "IpPrefixOutput", + "description": [], + "signature": [ + "{ type: \"ip_prefix\"; } & ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpPrefix", + "text": "IpPrefix" + } + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.IpRangeKey", @@ -36509,6 +36967,223 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction", + "type": "Object", + "tags": [], + "label": "ipPrefixFunction", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"ipPrefix\"" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"ip_prefix\"" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.inputTypes", + "type": "Array", + "tags": [], + "label": "inputTypes", + "description": [], + "signature": [ + "\"null\"[]" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.args", + "type": "Object", + "tags": [], + "label": "args", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.args.prefixLength", + "type": "Object", + "tags": [], + "label": "prefixLength", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.args.prefixLength.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"number\"[]" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.args.prefixLength.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.args.isIpv6", + "type": "Object", + "tags": [], + "label": "isIpv6", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.args.isIpv6.types", + "type": "Array", + "tags": [], + "label": "types", + "description": [], + "signature": [ + "\"boolean\"[]" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.args.isIpv6.help", + "type": "string", + "tags": [], + "label": "help", + "description": [], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.fn", + "type": "Function", + "tags": [], + "label": "fn", + "description": [], + "signature": [ + "(input: null, { prefixLength, isIpv6 }: ", + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpPrefix", + "text": "IpPrefix" + }, + ") => { type: \"ip_prefix\"; prefixLength: number | undefined; isIpv6: boolean | undefined; }" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.fn.$1", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "null" + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "data", + "id": "def-common.ipPrefixFunction.fn.$2", + "type": "Object", + "tags": [], + "label": "{ prefixLength, isIpv6 }", + "description": [], + "signature": [ + { + "pluginId": "data", + "scope": "common", + "docId": "kibDataSearchPluginApi", + "section": "def-common.IpPrefix", + "text": "IpPrefix" + } + ], + "path": "src/plugins/data/common/search/expressions/ip_prefix.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "data", "id": "def-common.ipRangeFunction", diff --git a/api_docs/data_search.mdx b/api_docs/data_search.mdx index 62cd1bbac7289..ad8936b3940dd 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'data.search'] --- import dataSearchObj from './data_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 | |-------------------|-----------|------------------------|-----------------| -| 3188 | 31 | 2537 | 22 | +| 3233 | 31 | 2582 | 23 | ## Client diff --git a/api_docs/data_view_editor.mdx b/api_docs/data_view_editor.mdx index 299c8ec4f418a..635562b176033 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-01-04 +date: 2024-01-25 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 426a400c774fd..aee0f175988ea 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-01-04 +date: 2024-01-25 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 d6991202136d4..bea25504a4f9a 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-01-04 +date: 2024-01-25 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 d3ccdff224917..e4387c24f3d9e 100644 --- a/api_docs/data_views.devdocs.json +++ b/api_docs/data_views.devdocs.json @@ -158,6 +158,54 @@ ], "returnComment": [] }, + { + "parentPluginId": "dataViews", + "id": "def-public.DataView.getEtag", + "type": "Function", + "tags": [], + "label": "getEtag", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dataViews", + "id": "def-public.DataView.setEtag", + "type": "Function", + "tags": [], + "label": "setEtag", + "description": [], + "signature": [ + "(etag: string | undefined) => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-public.DataView.setEtag.$1", + "type": "string", + "tags": [], + "label": "etag", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, { "parentPluginId": "dataViews", "id": "def-public.DataView.getComputedFields", @@ -1803,6 +1851,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsApiClient.Unnamed.$2", + "type": "Function", + "tags": [], + "label": "getCurrentUserId", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/data_views/public/data_views/data_views_api_client.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -1825,9 +1888,15 @@ "section": "def-common.GetFieldsOptions", "text": "GetFieldsOptions" }, - ") => Promise<", - "FieldsForWildcardResponse", - ">" + ") => Promise<{ indices: string[]; fields: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]; etag: string; }>" ], "path": "src/plugins/data_views/public/data_views/data_views_api_client.ts", "deprecated": false, @@ -2925,7 +2994,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise" + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -2968,6 +3037,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "dataViews", + "id": "def-public.DataViewsService.refreshFields.$3", + "type": "boolean", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -6346,6 +6430,23 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "dataViews", + "id": "def-public.UserIdGetter", + "type": "Type", + "tags": [], + "label": "UserIdGetter", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/data_views/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [], + "initialIsOpen": false } ], "objects": [], @@ -6563,6 +6664,54 @@ ], "returnComment": [] }, + { + "parentPluginId": "dataViews", + "id": "def-server.DataView.getEtag", + "type": "Function", + "tags": [], + "label": "getEtag", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dataViews", + "id": "def-server.DataView.setEtag", + "type": "Function", + "tags": [], + "label": "setEtag", + "description": [], + "signature": [ + "(etag: string | undefined) => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-server.DataView.setEtag.$1", + "type": "string", + "tags": [], + "label": "etag", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, { "parentPluginId": "dataViews", "id": "def-server.DataView.getComputedFields", @@ -8332,7 +8481,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise" + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -8375,6 +8524,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "dataViews", + "id": "def-server.DataViewsService.refreshFields.$3", + "type": "boolean", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -12005,6 +12169,54 @@ ], "returnComment": [] }, + { + "parentPluginId": "dataViews", + "id": "def-common.DataView.getEtag", + "type": "Function", + "tags": [], + "label": "getEtag", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "dataViews", + "id": "def-common.DataView.setEtag", + "type": "Function", + "tags": [], + "label": "setEtag", + "description": [], + "signature": [ + "(etag: string | undefined) => string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "dataViews", + "id": "def-common.DataView.setEtag.$1", + "type": "string", + "tags": [], + "label": "etag", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_view.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, { "parentPluginId": "dataViews", "id": "def-common.DataView.getComputedFields", @@ -14438,7 +14650,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise" + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -14481,6 +14693,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "dataViews", + "id": "def-common.DataViewsService.refreshFields.$3", + "type": "boolean", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true } ], "returnComment": [] @@ -16318,7 +16545,7 @@ "signature": [ "Pick<", "Toast", - ", \"prefix\" | \"defaultValue\" | \"security\" | \"children\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", + ", \"prefix\" | \"defaultValue\" | \"security\" | \"children\" | \"slot\" | \"style\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", @@ -17612,7 +17839,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean | undefined) => Promise" + ", displayErrors?: boolean | undefined, forceRefresh?: boolean | undefined) => Promise" ], "path": "src/plugins/data_views/common/data_views/data_views.ts", "deprecated": false, @@ -17653,6 +17880,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": false + }, + { + "parentPluginId": "dataViews", + "id": "def-common.DataViewsServicePublicMethods.refreshFields.$3", + "type": "CompoundType", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/data_views/data_views.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [] @@ -18141,6 +18383,20 @@ "path": "src/plugins/data_views/common/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "dataViews", + "id": "def-common.GetFieldsOptions.forceRefresh", + "type": "CompoundType", + "tags": [], + "label": "forceRefresh", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/data_views/common/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -20369,7 +20625,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise; fieldArrayToMap: (fields: ", + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise; fieldArrayToMap: (fields: ", { "pluginId": "dataViews", "scope": "common", @@ -20879,7 +21135,7 @@ "signature": [ "Pick<", "Toast", - ", \"prefix\" | \"defaultValue\" | \"security\" | \"children\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", + ", \"prefix\" | \"defaultValue\" | \"security\" | \"children\" | \"slot\" | \"style\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", diff --git a/api_docs/data_views.mdx b/api_docs/data_views.mdx index a0cdcce02e887..a5343d5e3bd67 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'dataViews'] --- import dataViewsObj from './data_views.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 | |-------------------|-----------|------------------------|-----------------| -| 922 | 0 | 257 | 4 | +| 938 | 0 | 273 | 4 | ## Client diff --git a/api_docs/data_visualizer.mdx b/api_docs/data_visualizer.mdx index bacd296a40466..a3317e80b1fec 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-01-04 +date: 2024-01-25 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 0d7e9842ff93f..d36a1e259b708 100644 --- a/api_docs/dataset_quality.devdocs.json +++ b/api_docs/dataset_quality.devdocs.json @@ -100,7 +100,17 @@ "label": "APIClientRequestParamsOf", "description": [], "signature": [ - "{ \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ", + "{ \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ dataStream: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "DatasetQualityRouteHandlerResources", + " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn: number; }>; } & ", + "DatasetQualityRouteCreateOptions", + "; \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ", "TypeC", "<{ query: ", "IntersectionC", @@ -138,7 +148,15 @@ "DatasetQualityRouteHandlerResources", " & { params: { query: { type?: \"metrics\" | \"synthetics\" | \"traces\" | \"logs\" | \"profiling\" | undefined; } & { datasetQuery?: string | undefined; }; }; }) => Promise<{ dataStreamsStats: ({ name: string; } & { size?: string | undefined; sizeBytes?: number | undefined; lastActivity?: number | undefined; integration?: string | undefined; })[]; 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; })[]; }>; } & ", "DatasetQualityRouteCreateOptions", - "; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT | undefined; handler: ({}: any) => Promise; } & ", + "; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " | undefined | undefined; handler: ({}: any) => Promise; } & ", "ServerRouteCreateOptions", " ? TRouteParamsRT extends ", { @@ -163,7 +181,17 @@ "label": "APIReturnType", "description": [], "signature": [ - "{ \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ", + "{ \"GET /internal/dataset_quality/data_streams/{dataStream}/details\": { endpoint: \"GET /internal/dataset_quality/data_streams/{dataStream}/details\"; params?: ", + "TypeC", + "<{ path: ", + "TypeC", + "<{ dataStream: ", + "StringC", + "; }>; }> | undefined; handler: ({}: ", + "DatasetQualityRouteHandlerResources", + " & { params: { path: { dataStream: string; }; }; }) => Promise<{ createdOn: number; }>; } & ", + "DatasetQualityRouteCreateOptions", + "; \"GET /internal/dataset_quality/data_streams/degraded_docs\": { endpoint: \"GET /internal/dataset_quality/data_streams/degraded_docs\"; params?: ", "TypeC", "<{ query: ", "IntersectionC", diff --git a/api_docs/dataset_quality.mdx b/api_docs/dataset_quality.mdx index 79815bf40637e..7449d749ed6e6 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'datasetQuality'] --- import datasetQualityObj from './dataset_quality.devdocs.json'; diff --git a/api_docs/deprecations_by_api.mdx b/api_docs/deprecations_by_api.mdx index 4ce5183771c88..b7e08b00e0580 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -17,21 +17,20 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Referencing plugin(s) | Remove By | | ---------------|-----------|-----------| | | ml, stackAlerts | - | -| | ruleRegistry, observability, ml, infra, monitoring, securitySolution, stackAlerts, synthetics, transform, uptime | - | -| | share, uiActions, guidedOnboarding, home, serverless, management, spaces, savedObjects, indexManagement, visualizations, dashboard, savedObjectsTagging, expressionXY, lens, expressionMetricVis, expressionGauge, security, alerting, triggersActionsUi, cases, aiops, advancedSettings, licenseManagement, maps, dataVisualizer, ml, exploratoryView, fleet, metricsDataAccess, osquery, ingestPipelines, profiling, apm, expressionImage, expressionMetric, expressionError, expressionRevealImage, expressionRepeatImage, expressionShape, crossClusterReplication, graph, grokdebugger, indexLifecycleManagement, infra, logstash, monitoring, observabilityOnboarding, devTools, painlessLab, remoteClusters, rollup, searchprofiler, newsfeed, securitySolution, snapshotRestore, synthetics, transform, upgradeAssistant, uptime, ux, watcher, cloudDataMigration, console, filesManagement, kibanaOverview, visDefaultEditor, expressionHeatmap, expressionLegacyMetricVis, expressionPartitionVis, expressionTagcloud, visTypeTable, visTypeTimelion, visTypeTimeseries, visTypeVega, visTypeVislib | - | +| | share, uiActions, guidedOnboarding, home, serverless, management, spaces, savedObjects, indexManagement, visualizations, dashboard, savedObjectsTagging, expressionXY, lens, expressionMetricVis, expressionGauge, security, alerting, triggersActionsUi, cases, aiops, licenseManagement, advancedSettings, maps, dataVisualizer, ml, exploratoryView, fleet, metricsDataAccess, osquery, ingestPipelines, profiling, apm, expressionImage, expressionMetric, expressionError, expressionRevealImage, expressionRepeatImage, expressionShape, crossClusterReplication, graph, grokdebugger, indexLifecycleManagement, infra, logstash, monitoring, observabilityOnboarding, devTools, painlessLab, remoteClusters, rollup, searchprofiler, newsfeed, securitySolution, console, snapshotRestore, synthetics, transform, upgradeAssistant, uptime, ux, watcher, cloudDataMigration, filesManagement, kibanaOverview, visDefaultEditor, expressionHeatmap, expressionLegacyMetricVis, expressionPartitionVis, expressionTagcloud, visTypeTable, visTypeTimelion, visTypeTimeseries, visTypeVega, visTypeVislib | - | | | encryptedSavedObjects, actions, data, ml, logstash, securitySolution, cloudChat | - | | | actions, ml, savedObjectsTagging, enterpriseSearch | - | | | @kbn/core-saved-objects-browser-internal, @kbn/core, savedObjects, visualizations, aiops, ml, dataVisualizer, dashboardEnhanced, graph, lens, securitySolution, eventAnnotation, @kbn/core-saved-objects-browser-mocks | - | | | @kbn/core, savedObjects, embeddable, visualizations, canvas, graph, ml, @kbn/core-saved-objects-common, @kbn/core-saved-objects-server, actions, alerting, savedSearch, enterpriseSearch, securitySolution, taskManager, @kbn/core-saved-objects-server-internal, @kbn/core-saved-objects-api-server | - | | | stackAlerts, alerting, securitySolution, inputControlVis | - | -| | stackAlerts, graph, infra, inputControlVis, securitySolution, savedObjects | - | +| | stackAlerts, graph, inputControlVis, securitySolution, savedObjects | - | | | dashboard, dataVisualizer, stackAlerts, expressionPartitionVis | - | | | stackAlerts, alerting, securitySolution, inputControlVis | - | | | triggersActionsUi | - | -| | inspector, data, savedObjects, runtimeFields, indexManagement, dataViewEditor, unifiedSearch, embeddable, visualizations, dashboard, licensing, savedObjectsTagging, dataViewFieldEditor, lens, security, triggersActionsUi, cases, observabilityShared, advancedSettings, telemetry, maps, exploratoryView, fleet, timelines, banners, reporting, cloudSecurityPosture, dashboardEnhanced, imageEmbeddable, graph, monitoring, securitySolution, synthetics, uptime, cloudLinks, console, dataViewManagement, eventAnnotationListing, filesManagement, uiActions, visTypeVislib | - | +| | inspector, data, savedObjects, runtimeFields, indexManagement, dataViewEditor, unifiedSearch, embeddable, visualizations, dashboard, licensing, savedObjectsTagging, dataViewFieldEditor, lens, security, triggersActionsUi, cases, observabilityShared, telemetry, advancedSettings, maps, exploratoryView, fleet, timelines, banners, reporting, cloudSecurityPosture, dashboardEnhanced, imageEmbeddable, graph, monitoring, securitySolution, console, synthetics, uptime, cloudLinks, dataViewManagement, eventAnnotationListing, filesManagement, uiActions, visTypeVislib | - | | | @kbn/core, visualizations, triggersActionsUi, advancedSettings | - | +| | ruleRegistry, observability, infra, securitySolution, synthetics, uptime | - | | | observability, @kbn/securitysolution-data-table, securitySolution | - | -| | monitoring | - | | | alerting, discover, securitySolution | - | | | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-api-server-internal, @kbn/core-saved-objects-import-export-server-internal, @kbn/core-saved-objects-server-internal, fleet, graph, lists, osquery, securitySolution, alerting | - | | | @kbn/core-saved-objects-api-browser, @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-api-server-internal, @kbn/core-saved-objects-import-export-server-internal, @kbn/core-saved-objects-server-internal, fleet, graph, lists, osquery, securitySolution, alerting | - | @@ -58,20 +57,20 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | securitySolution | - | | | securitySolution | - | | | dataVisualizer, exploratoryView, fleet, osquery, cloudSecurityPosture, discoverEnhanced, synthetics | - | -| | @kbn/core-plugins-browser-internal, @kbn/core-root-browser-internal, home, savedObjects, unifiedSearch, visualizations, fileUpload, dashboardEnhanced, transform, discover, dataVisualizer | - | -| | @kbn/core-lifecycle-browser, @kbn/core-saved-objects-browser-internal, @kbn/core, visualizations, exploratoryView, transform, @kbn/core-saved-objects-browser-mocks | - | | | actions, alerting | - | | | data, discover, imageEmbeddable, embeddable | - | +| | @kbn/core-plugins-browser-internal, @kbn/core-root-browser-internal, home, savedObjects, unifiedSearch, visualizations, fileUpload, dashboardEnhanced, transform, dashboard, discover, dataVisualizer | - | | | @kbn/core-saved-objects-browser-mocks, discover, @kbn/core-saved-objects-browser-internal | - | | | @kbn/management-settings-field-definition, advancedSettings, discover | - | +| | monitoring | - | | | @kbn/core-saved-objects-api-browser, @kbn/core, savedObjects, savedObjectsManagement, visualizations, savedObjectsTagging, eventAnnotation, lens, graph, dashboard, savedObjectsTaggingOss, kibanaUtils, expressions, data, embeddable, controls, uiActionsEnhanced, maps, canvas, dashboardEnhanced, globalSearchProviders | - | | | @kbn/core-saved-objects-browser, @kbn/core-saved-objects-browser-internal, @kbn/core, home, savedObjects, visualizations, lens, visTypeTimeseries, @kbn/core-saved-objects-browser-mocks | - | -| | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, savedObjects | - | +| | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, savedObjects, dashboard | - | | | @kbn/core-saved-objects-browser-mocks, home, @kbn/core-saved-objects-browser-internal | - | | | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, savedObjects, visualizations | - | | | @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-mocks, savedObjects, dashboardEnhanced, @kbn/core-saved-objects-browser-internal | - | -| | @kbn/core-saved-objects-browser-mocks, savedObjects, dashboardEnhanced, @kbn/core-saved-objects-browser-internal | - | +| | @kbn/core-saved-objects-browser-mocks, savedObjects, dashboardEnhanced, dashboard, @kbn/core-saved-objects-browser-internal | - | +| | @kbn/core-saved-objects-browser-mocks, savedObjects, dashboardEnhanced, dashboard, @kbn/core-saved-objects-browser-internal | - | | | @kbn/core-saved-objects-browser-mocks, savedObjects, @kbn/core-saved-objects-browser-internal | - | | | @kbn/core-saved-objects-browser-mocks, @kbn/core-saved-objects-browser-internal | - | | | @kbn/core-saved-objects-browser-internal, @kbn/core-saved-objects-browser-mocks, savedObjects | - | @@ -91,6 +90,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | @kbn/core-saved-objects-browser-internal, @kbn/core | - | | | @kbn/core-saved-objects-browser-internal, @kbn/core | - | | | @kbn/core-saved-objects-browser-internal | - | +| | @kbn/core-lifecycle-browser, @kbn/core-saved-objects-browser-internal, @kbn/core, visualizations, exploratoryView, transform, @kbn/core-saved-objects-browser-mocks | - | | | @kbn/core-root-browser-internal, @kbn/core-saved-objects-browser-mocks | - | | | @kbn/core-saved-objects-api-server-internal | - | | | @kbn/core-saved-objects-api-server-internal | - | @@ -126,7 +126,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | spaces, savedObjectsManagement | - | | | reporting | - | | | @kbn/reporting-export-types-pdf, reporting | - | -| | @kbn/core-elasticsearch-server-internal, @kbn/core-plugins-server-internal, observabilityOnboarding, console | - | +| | @kbn/core-elasticsearch-server-internal, @kbn/core-plugins-server-internal, enterpriseSearch, observabilityOnboarding, console | - | | | @kbn/content-management-table-list-view, filesManagement | - | | | @kbn/react-kibana-context-styled, kibanaReact | - | | | enterpriseSearch | - | @@ -198,6 +198,7 @@ Safe to remove. | | lists | | | reporting | | | savedObjects | +| | serverless | | | taskManager | | | @kbn/core-saved-objects-api-browser | | | @kbn/core-saved-objects-api-browser | diff --git a/api_docs/deprecations_by_plugin.mdx b/api_docs/deprecations_by_plugin.mdx index b55449facaff7..05f1f4e2d5092 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -79,7 +79,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart), [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart) | - | +| | [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart), [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart), [core_start.ts](https://github.com/elastic/kibana/tree/main/packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts#:~:text=SavedObjectsStart) | - | @@ -155,7 +155,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract), [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract) | - | +| | [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract), [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract), [contracts.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts#:~:text=SavedObjectsClientContract) | - | @@ -177,7 +177,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=bulkResolve) | - | | | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=update), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=update), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=update) | - | | | [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=bulkUpdate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkUpdate), [saved_objects_client.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.test.ts#:~:text=bulkUpdate) | - | -| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject) | - | +| | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject), [saved_objects_client.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts#:~:text=SimpleSavedObject)+ 1 more | - | | | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=migrationVersion), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=migrationVersion), [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=migrationVersion) | - | | | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=save), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=save), [simple_saved_object.test.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts#:~:text=save) | - | | | [simple_saved_object.ts](https://github.com/elastic/kibana/tree/main/packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts#:~:text=delete) | - | @@ -378,7 +378,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [maintenance_windows.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/public/application/maintenance_windows.tsx#:~:text=KibanaThemeProvider), [maintenance_windows.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/public/application/maintenance_windows.tsx#:~:text=KibanaThemeProvider), [maintenance_windows.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/public/application/maintenance_windows.tsx#:~:text=KibanaThemeProvider) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/plugin.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24), [license_state.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/lib/license_state.test.ts#:~:text=license%24) | 8.8.0 | | | [task.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/usage/task.ts#:~:text=index) | - | -| | [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes)+ 54 more | - | +| | [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes), [rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/common/rule.ts#:~:text=SavedObjectAttributes)+ 56 more | - | | | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/alerting/server/saved_objects/index.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -475,7 +475,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [shared_imports.ts](https://github.com/elastic/kibana/tree/main/src/plugins/console/public/shared_imports.ts#:~:text=toMountPoint), [use_send_current_request.ts](https://github.com/elastic/kibana/tree/main/src/plugins/console/public/application/hooks/use_send_current_request/use_send_current_request.ts#:~:text=toMountPoint), [use_send_current_request.ts](https://github.com/elastic/kibana/tree/main/src/plugins/console/public/application/hooks/use_send_current_request/use_send_current_request.ts#:~:text=toMountPoint) | - | -| | [shared_imports.ts](https://github.com/elastic/kibana/tree/main/src/plugins/console/public/shared_imports.ts#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/console/public/application/index.tsx#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/console/public/application/index.tsx#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/console/public/application/index.tsx#:~:text=KibanaThemeProvider) | - | +| | [shared_imports.ts](https://github.com/elastic/kibana/tree/main/src/plugins/console/public/shared_imports.ts#:~:text=KibanaThemeProvider) | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/src/plugins/console/server/plugin.ts#:~:text=legacy) | - | @@ -505,6 +505,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [show_settings.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/show_settings.tsx#:~:text=toMountPoint), [show_settings.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/show_settings.tsx#:~:text=toMountPoint), [confirm_overlays.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx#:~:text=toMountPoint), [confirm_overlays.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_listing/confirm_overlays.tsx#:~:text=toMountPoint), [dashboard_no_match.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_no_match.tsx#:~:text=toMountPoint), [dashboard_no_match.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/listing_page/dashboard_no_match.tsx#:~:text=toMountPoint), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx#:~:text=toMountPoint), [dashboard_listing.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_listing/dashboard_listing.tsx#:~:text=toMountPoint), [open_replace_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/open_replace_panel_flyout.tsx#:~:text=toMountPoint), [open_replace_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_actions/open_replace_panel_flyout.tsx#:~:text=toMountPoint)+ 2 more | - | | | [dashboard_container.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx#:~:text=KibanaThemeProvider), [dashboard_container.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx#:~:text=KibanaThemeProvider), [dashboard_container.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/dashboard_container.tsx#:~:text=KibanaThemeProvider), [dashboard_router.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/dashboard_router.tsx#:~:text=KibanaThemeProvider), [dashboard_router.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/dashboard_router.tsx#:~:text=KibanaThemeProvider), [dashboard_router.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_app/dashboard_router.tsx#:~:text=KibanaThemeProvider) | - | | | [save_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/overlays/save_modal.tsx#:~:text=SavedObjectSaveModal), [save_modal.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/overlays/save_modal.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | +| | [duplicate_dashboard_panel.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts#:~:text=savedObjects), [duplicate_dashboard_panel.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts#:~:text=savedObjects) | - | +| | [duplicate_dashboard_panel.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts#:~:text=create) | - | +| | [duplicate_dashboard_panel.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts#:~:text=find) | - | +| | [duplicate_dashboard_panel.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts#:~:text=get) | - | | | [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/bwc/types.ts#:~:text=SavedObjectReference), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/common/bwc/types.ts#:~:text=SavedObjectReference) | - | | | [dashboard_saved_object.ts](https://github.com/elastic/kibana/tree/main/src/plugins/dashboard/server/dashboard_saved_object/dashboard_saved_object.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -630,9 +634,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [open_add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx#:~:text=toMountPoint), [open_add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx#:~:text=toMountPoint), [send_message_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/actions/send_message_action.tsx#:~:text=toMountPoint), [send_message_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/actions/send_message_action.tsx#:~:text=toMountPoint), [send_message_action.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/actions/send_message_action.tsx#:~:text=toMountPoint), [contact_card_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_embeddable_factory.tsx#:~:text=toMountPoint), [contact_card_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_embeddable_factory.tsx#:~:text=toMountPoint), [contact_card_exportable_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_exportable_embeddable_factory.tsx#:~:text=toMountPoint), [contact_card_exportable_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_exportable_embeddable_factory.tsx#:~:text=toMountPoint) | - | +| | [open_add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx#:~:text=toMountPoint), [open_add_panel_flyout.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/add_panel_flyout/open_add_panel_flyout.tsx#:~:text=toMountPoint), [contact_card_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_embeddable_factory.tsx#:~:text=toMountPoint), [contact_card_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_embeddable_factory.tsx#:~:text=toMountPoint), [contact_card_exportable_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_exportable_embeddable_factory.tsx#:~:text=toMountPoint), [contact_card_exportable_embeddable_factory.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_exportable_embeddable_factory.tsx#:~:text=toMountPoint) | - | | | [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal), [attribute_service.tsx](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/attribute_service/attribute_service.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | -| | [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [explicit_input.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/explicit_input.test.ts#:~:text=executeTriggerActions) | - | +| | [helpers.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/helpers.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [container.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/container.test.ts#:~:text=executeTriggerActions), [explicit_input.test.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/tests/explicit_input.test.ts#:~:text=executeTriggerActions) | - | | | [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [default_embeddable_factory_provider.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/lib/embeddables/default_embeddable_factory_provider.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes), [types.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/public/types.ts#:~:text=SavedObjectAttributes) | - | | | [migrate_base_input.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/migrate_base_input.ts#:~:text=SavedObjectReference), [migrate_base_input.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/migrate_base_input.ts#:~:text=SavedObjectReference), [migrate_base_input.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/migrate_base_input.ts#:~:text=SavedObjectReference), [inject.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/inject.ts#:~:text=SavedObjectReference), [inject.ts](https://github.com/elastic/kibana/tree/main/src/plugins/embeddable/common/lib/inject.ts#:~:text=SavedObjectReference) | - | @@ -653,6 +657,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | ---------------|-----------|-----------| | | [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi), [account_settings.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/public/applications/workplace_search/views/account_settings/account_settings.tsx#:~:text=uiApi) | - | | | [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz), [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz), [check_access.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/lib/check_access.ts#:~:text=authz) | - | +| | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/plugin.ts#:~:text=legacy) | - | | | [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes), [telemetry.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/enterprise_search/server/collectors/lib/telemetry.ts#:~:text=SavedObjectAttributes) | - | @@ -923,7 +928,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [log_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/log_threshold/log_threshold_executor.ts#:~:text=alertFactory), [inventory_metric_threshold_executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/server/lib/alerting/inventory_metric_threshold/inventory_metric_threshold_executor.ts#:~:text=alertFactory) | - | -| | [use_kibana_index_patterns.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/hooks/use_kibana_index_patterns.ts#:~:text=indexPatterns) | - | | | [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider), [common_providers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/infra/public/apps/common_providers.tsx#:~:text=KibanaThemeProvider) | - | @@ -983,7 +987,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [confirm_modal_promise.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/confirm_modal_promise.tsx#:~:text=toMountPoint), [confirm_modal_promise.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/confirm_modal_promise.tsx#:~:text=toMountPoint), [remove_layer_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/remove_layer_action.tsx#:~:text=toMountPoint), [remove_layer_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/remove_layer_action.tsx#:~:text=toMountPoint), [revert_changes_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx#:~:text=toMountPoint), [revert_changes_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx#:~:text=toMountPoint), [edit_action_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/edit_action_helpers.ts#:~:text=toMountPoint), [edit_action_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/edit_action_helpers.ts#:~:text=toMountPoint) | - | +| | [confirm_modal_promise.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/confirm_modal_promise.tsx#:~:text=toMountPoint), [confirm_modal_promise.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/confirm_modal_promise.tsx#:~:text=toMountPoint), [remove_layer_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/remove_layer_action.tsx#:~:text=toMountPoint), [remove_layer_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/editor_frame_service/editor_frame/config_panel/layer_actions/remove_layer_action.tsx#:~:text=toMountPoint), [revert_changes_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx#:~:text=toMountPoint), [revert_changes_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/revert_changes_action.tsx#:~:text=toMountPoint), [edit_action_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/edit_action_helpers.ts#:~:text=toMountPoint), [edit_action_helpers.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/edit_action_helpers.ts#:~:text=toMountPoint), [in_app_embeddable_edit_action_helpers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/in_app_embeddable_edit_action_helpers.tsx#:~:text=toMountPoint), [in_app_embeddable_edit_action_helpers.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/in_app_embeddable_edit_action_helpers.tsx#:~:text=toMountPoint) | - | | | [help_popover.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/help_popover.tsx#:~:text=KibanaThemeProvider), [help_popover.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/help_popover.tsx#:~:text=KibanaThemeProvider), [help_popover.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/datasources/form_based/help_popover.tsx#:~:text=KibanaThemeProvider), [expression.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx#:~:text=KibanaThemeProvider), [expression.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx#:~:text=KibanaThemeProvider), [expression.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/datatable/expression.tsx#:~:text=KibanaThemeProvider), [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=KibanaThemeProvider), [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=KibanaThemeProvider), [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=KibanaThemeProvider), [settings_menu.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/app_plugin/settings_menu.tsx#:~:text=KibanaThemeProvider)+ 12 more | - | | | [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=SavedObjectSaveModal), [save_action.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/visualizations/xy/annotations/actions/save_action.tsx#:~:text=SavedObjectSaveModal) | 8.8.0 | | | [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts#:~:text=SavedObjectsClientContract), [find_object_by_title.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/lens/public/persistence/saved_objects_utils/find_object_by_title.test.ts#:~:text=SavedObjectsClientContract) | - | @@ -1091,7 +1095,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [register_ml_alerts.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/alerting/register_ml_alerts.ts#:~:text=registerNavigation) | - | -| | [register_jobs_monitoring_rule_type.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/register_jobs_monitoring_rule_type.ts#:~:text=alertFactory), [register_jobs_monitoring_rule_type.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/lib/alerts/register_jobs_monitoring_rule_type.ts#:~:text=alertFactory) | - | | | [anomaly_charts_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx#:~:text=KibanaThemeProvider), [anomaly_charts_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx#:~:text=KibanaThemeProvider), [anomaly_charts_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/embeddables/anomaly_charts/anomaly_charts_embeddable.tsx#:~:text=KibanaThemeProvider), [anomaly_swimlane_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable.tsx#:~:text=KibanaThemeProvider), [anomaly_swimlane_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable.tsx#:~:text=KibanaThemeProvider), [anomaly_swimlane_embeddable.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/embeddables/anomaly_swimlane/anomaly_swimlane_embeddable.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/app.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/app.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/app.tsx#:~:text=KibanaThemeProvider), [jobs_list_page.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/application/management/jobs_list/components/jobs_list_page/jobs_list_page.tsx#:~:text=KibanaThemeProvider)+ 2 more | - | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24) | 8.8.0 | | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24) | 8.8.0 | @@ -1106,7 +1109,6 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [base_rule.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/server/alerts/base_rule.ts#:~:text=alertFactory) | - | | | [url_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/url_state.ts#:~:text=syncQueryStateWithUrl), [url_state.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/url_state.ts#:~:text=syncQueryStateWithUrl) | - | | | [use_request_error_handler.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/hooks/use_request_error_handler.tsx#:~:text=toMountPoint), [use_request_error_handler.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/hooks/use_request_error_handler.tsx#:~:text=toMountPoint), [use_request_error_handler.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/hooks/use_request_error_handler.tsx#:~:text=toMountPoint), [alerts_toast.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/alerts/lib/alerts_toast.tsx#:~:text=toMountPoint), [alerts_toast.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/alerts/lib/alerts_toast.tsx#:~:text=toMountPoint), [ingest_pipeline_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx#:~:text=toMountPoint), [ingest_pipeline_modal.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/pages/elasticsearch/ingest_pipeline_modal.tsx#:~:text=toMountPoint), [listing.js](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/components/cluster/listing/listing.js#:~:text=toMountPoint), [listing.js](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/components/cluster/listing/listing.js#:~:text=toMountPoint), [listing.js](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/components/cluster/listing/listing.js#:~:text=toMountPoint) | - | | | [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/index.tsx#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/index.tsx#:~:text=KibanaThemeProvider), [index.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/monitoring/public/application/index.tsx#:~:text=KibanaThemeProvider) | - | @@ -1273,7 +1275,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [mount_section.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/management/mount_section.tsx#:~:text=KibanaThemeProvider), [mount_section.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/management/mount_section.tsx#:~:text=KibanaThemeProvider), [mount_section.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/management/mount_section.tsx#:~:text=KibanaThemeProvider) | - | | | [request_handler_context.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/server/request_handler_context.ts#:~:text=authz) | - | | | [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/types.ts#:~:text=SavedObject), [types.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/types.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObject), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject), [utils.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.test.ts#:~:text=SavedObject)+ 3 more | - | -| | [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObjectReference), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObjectReference), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObjectReference)+ 11 more | - | +| | [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObjectReference), [get_table_column_definition.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/ui_api/get_table_column_definition.tsx#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [references.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/common/references.ts#:~:text=SavedObjectReference), [utils.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/public/utils.ts#:~:text=SavedObjectReference)+ 12 more | - | | | [tag.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/saved_objects_tagging/server/saved_objects/tag.ts#:~:text=convertToMultiNamespaceTypeVersion) | - | @@ -1336,7 +1338,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [legacy_rules_notification_alert_type.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_actions_legacy/logic/notifications/legacy_rules_notification_alert_type.ts#:~:text=alertFactory), [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts#:~:text=alertFactory) | - | +| | [route.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/route.ts#:~:text=alertFactory) | - | | | [wrap_search_source_client.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.ts#:~:text=create) | - | | | [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch), [wrap_search_source_client.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/detection_engine/rule_preview/api/preview_rules/wrap_search_source_client.test.ts#:~:text=fetch) | - | | | [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion), [host_risk_score_dashboards.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/security_solution/server/lib/risk_score/prebuilt_saved_objects/saved_object/host_risk_score_dashboards.ts#:~:text=migrationVersion)+ 12 more | - | @@ -1419,7 +1421,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| | | [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/es_query/index.ts#:~:text=registerNavigation), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/es_query/index.ts#:~:text=registerNavigation), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/es_query/index.ts#:~:text=registerNavigation), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/es_query/index.ts#:~:text=registerNavigation), [index.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/es_query/index.ts#:~:text=registerNavigation) | - | -| | [get_entities_and_generate_alerts.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/server/rule_types/geo_containment/lib/get_entities_and_generate_alerts.ts#:~:text=alertFactory), [executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/server/rule_types/geo_containment/executor.ts#:~:text=alertFactory), [executor.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/server/rule_types/geo_containment/executor.ts#:~:text=alertFactory) | - | | | [fetch_search_source_query.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/server/rule_types/es_query/lib/fetch_search_source_query.ts#:~:text=fetch), [rule_type.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/server/rule_types/es_query/rule_type.test.ts#:~:text=fetch), [rule_type.test.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/server/rule_types/es_query/rule_type.test.ts#:~:text=fetch) | - | | | [data_view_select.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/geo_containment/rule_form/data_view_select.tsx#:~:text=indexPatterns), [boundary_form.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/geo_containment/rule_form/boundary_form.tsx#:~:text=indexPatterns), [boundary_form.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/geo_containment/rule_form/boundary_form.tsx#:~:text=indexPatterns), [entity_form.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/geo_containment/rule_form/entity_form.tsx#:~:text=indexPatterns), [entity_form.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/geo_containment/rule_form/entity_form.tsx#:~:text=indexPatterns) | - | | | [expression.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/stack_alerts/public/rule_types/threshold/expression.tsx#:~:text=fieldFormats) | - | @@ -1466,7 +1467,6 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [register_transform_health_rule_type.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/lib/alerting/transform_health_rule_type/register_transform_health_rule_type.ts#:~:text=alertFactory) | - | | | [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app.tsx#:~:text=KibanaThemeProvider), [app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/app.tsx#:~:text=KibanaThemeProvider) | - | | | [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/services/license.ts#:~:text=license%24) | 8.8.0 | | | [mount_management_section.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/public/app/mount_management_section.ts#:~:text=savedObjects) | - | @@ -1527,7 +1527,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Deprecated API | Reference location(s) | Remove By | | ---------------|-----------|-----------| -| | [common.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/common.ts#:~:text=alertFactory), [status_check.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/status_check.ts#:~:text=alertFactory), [tls.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/tls.ts#:~:text=alertFactory), [tls_legacy.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/tls_legacy.ts#:~:text=alertFactory), [duration_anomaly.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/duration_anomaly.ts#:~:text=alertFactory) | - | +| | [common.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/common.ts#:~:text=alertFactory), [status_check.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/status_check.ts#:~:text=alertFactory), [tls.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/tls.ts#:~:text=alertFactory), [duration_anomaly.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/server/legacy_uptime/lib/alerts/duration_anomaly.ts#:~:text=alertFactory) | - | | | [alert_messages.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/public/legacy_uptime/lib/alert_types/alert_messages.tsx#:~:text=toMountPoint), [alert_messages.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/public/legacy_uptime/lib/alert_types/alert_messages.tsx#:~:text=toMountPoint), [ml_flyout_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/public/legacy_uptime/components/monitor/ml/ml_flyout_container.tsx#:~:text=toMountPoint), [ml_flyout_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/public/legacy_uptime/components/monitor/ml/ml_flyout_container.tsx#:~:text=toMountPoint), [ml_flyout_container.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/public/legacy_uptime/components/monitor/ml/ml_flyout_container.tsx#:~:text=toMountPoint) | - | | | [uptime_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/public/legacy_uptime/app/uptime_app.tsx#:~:text=KibanaThemeProvider), [uptime_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/public/legacy_uptime/app/uptime_app.tsx#:~:text=KibanaThemeProvider), [uptime_app.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/uptime/public/legacy_uptime/app/uptime_app.tsx#:~:text=KibanaThemeProvider) | - | diff --git a/api_docs/deprecations_by_team.mdx b/api_docs/deprecations_by_team.mdx index 5c49d1c2111f5..bb56d78c5454d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana'] --- @@ -109,7 +109,7 @@ migrates to using the Kibana Privilege model: https://github.com/elastic/kibana/ | Plugin | Deprecated API | Reference location(s) | Remove By | | --------|-------|-----------|-----------| | ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/public/plugin.ts#:~:text=license%24), [plugin.tsx](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/public/plugin.tsx#:~:text=license%24) | 8.8.0 | -| ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/services/license.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/server/plugin.ts#:~:text=license%24) | 8.8.0 | +| ml | | [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/ml/server/plugin.ts#:~:text=license%24), [plugin.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/aiops/server/plugin.ts#:~:text=license%24), [license.ts](https://github.com/elastic/kibana/tree/main/x-pack/plugins/transform/server/services/license.ts#:~:text=license%24) | 8.8.0 | diff --git a/api_docs/dev_tools.mdx b/api_docs/dev_tools.mdx index c34d797770737..04fcaf7ddd46f 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-01-04 +date: 2024-01-25 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 b086a06274a8f..b12e043f1a2b3 100644 --- a/api_docs/discover.devdocs.json +++ b/api_docs/discover.devdocs.json @@ -427,7 +427,7 @@ "label": "get$", "description": [], "signature": [ - "(id: TCustomizationId) => ", + "(id: TCustomizationId) => ", "Observable", " | Extract<", + "DataTableCustomization", ", { id: TCustomizationId; }> | undefined>" ], "path": "src/plugins/discover/public/customizations/customization_service.ts", @@ -493,7 +495,7 @@ "label": "enable", "description": [], "signature": [ - "(id: \"flyout\" | \"search_bar\" | \"top_nav\" | \"unified_histogram\") => void" + "(id: \"flyout\" | \"search_bar\" | \"top_nav\" | \"unified_histogram\" | \"data_table\") => void" ], "path": "src/plugins/discover/public/customizations/customization_service.ts", "deprecated": false, @@ -507,7 +509,7 @@ "label": "id", "description": [], "signature": [ - "\"flyout\" | \"search_bar\" | \"top_nav\" | \"unified_histogram\"" + "\"flyout\" | \"search_bar\" | \"top_nav\" | \"unified_histogram\" | \"data_table\"" ], "path": "src/plugins/discover/public/customizations/customization_service.ts", "deprecated": false, @@ -525,7 +527,7 @@ "label": "disable", "description": [], "signature": [ - "(id: \"flyout\" | \"search_bar\" | \"top_nav\" | \"unified_histogram\") => void" + "(id: \"flyout\" | \"search_bar\" | \"top_nav\" | \"unified_histogram\" | \"data_table\") => void" ], "path": "src/plugins/discover/public/customizations/customization_service.ts", "deprecated": false, @@ -539,7 +541,7 @@ "label": "id", "description": [], "signature": [ - "\"flyout\" | \"search_bar\" | \"top_nav\" | \"unified_histogram\"" + "\"flyout\" | \"search_bar\" | \"top_nav\" | \"unified_histogram\" | \"data_table\"" ], "path": "src/plugins/discover/public/customizations/customization_service.ts", "deprecated": false, @@ -1519,7 +1521,9 @@ "docId": "kibDiscoverPluginApi", "section": "def-public.UnifiedHistogramCustomization", "text": "UnifiedHistogramCustomization" - } + }, + " | ", + "DataTableCustomization" ], "path": "src/plugins/discover/public/customizations/customization_service.ts", "deprecated": false, @@ -2121,6 +2125,120 @@ "trackAdoption": false } ] + }, + { + "parentPluginId": "discover", + "id": "def-server.LocatorServiceScopedClient.queryFromLocator", + "type": "Function", + "tags": [], + "label": "queryFromLocator", + "description": [], + "signature": [ + "(params: ", + { + "pluginId": "discover", + "scope": "common", + "docId": "kibDiscoverPluginApi", + "section": "def-common.DiscoverAppLocatorParams", + "text": "DiscoverAppLocatorParams" + }, + ") => Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>" + ], + "path": "src/plugins/discover/server/index.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "discover", + "id": "def-server.LocatorServiceScopedClient.queryFromLocator.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + { + "pluginId": "discover", + "scope": "common", + "docId": "kibDiscoverPluginApi", + "section": "def-common.DiscoverAppLocatorParams", + "text": "DiscoverAppLocatorParams" + } + ], + "path": "src/plugins/discover/server/locator/query_from_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "discover", + "id": "def-server.LocatorServiceScopedClient.filtersFromLocator", + "type": "Function", + "tags": [], + "label": "filtersFromLocator", + "description": [], + "signature": [ + "(params: ", + { + "pluginId": "discover", + "scope": "common", + "docId": "kibDiscoverPluginApi", + "section": "def-common.DiscoverAppLocatorParams", + "text": "DiscoverAppLocatorParams" + }, + ") => Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[]>" + ], + "path": "src/plugins/discover/server/index.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "discover", + "id": "def-server.LocatorServiceScopedClient.filtersFromLocator.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + { + "pluginId": "discover", + "scope": "common", + "docId": "kibDiscoverPluginApi", + "section": "def-common.DiscoverAppLocatorParams", + "text": "DiscoverAppLocatorParams" + } + ], + "path": "src/plugins/discover/server/locator/filters_from_locator.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "initialIsOpen": false diff --git a/api_docs/discover.mdx b/api_docs/discover.mdx index 47dfbf70d346e..9033e67b5f209 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 137 | 0 | 91 | 21 | +| 141 | 0 | 95 | 22 | ## Client diff --git a/api_docs/discover_enhanced.devdocs.json b/api_docs/discover_enhanced.devdocs.json index 080bcfd52756d..93a1b863d2a56 100644 --- a/api_docs/discover_enhanced.devdocs.json +++ b/api_docs/discover_enhanced.devdocs.json @@ -818,7 +818,15 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + "[]>; readonly getFrequentlyChangingActionsForTrigger: (triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", diff --git a/api_docs/discover_enhanced.mdx b/api_docs/discover_enhanced.mdx index caa873b92b456..f655655d5cbc2 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'discoverEnhanced'] --- import discoverEnhancedObj from './discover_enhanced.devdocs.json'; diff --git a/api_docs/ecs_data_quality_dashboard.mdx b/api_docs/ecs_data_quality_dashboard.mdx index 49056bd1bf759..bf7dd8d9fdfce 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-01-04 +date: 2024-01-25 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 30f40a7e90148..836b7c4e15554 100644 --- a/api_docs/elastic_assistant.devdocs.json +++ b/api_docs/elastic_assistant.devdocs.json @@ -1741,7 +1741,9 @@ "type": "Object", "tags": [], "label": "actions", - "description": [], + "description": [ + "\nActions plugin start contract." + ], "signature": [ { "pluginId": "actions", @@ -1755,6 +1757,114 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "elasticAssistant", + "id": "def-server.ElasticAssistantPluginStart.registerFeatures", + "type": "Function", + "tags": [], + "label": "registerFeatures", + "description": [ + "\nRegister features to be used by the elastic assistant.\n\nNote: Be sure to use the pluginName that is sent in the request headers by your plugin to ensure it is extracted\nand the correct features are available. See {@link getPluginNameFromRequest} for more details.\n" + ], + "signature": [ + "(pluginName: string, features: Partial<", + { + "pluginId": "@kbn/elastic-assistant-common", + "scope": "common", + "docId": "kibKbnElasticAssistantCommonPluginApi", + "section": "def-common.AssistantFeatures", + "text": "AssistantFeatures" + }, + ">) => void" + ], + "path": "x-pack/plugins/elastic_assistant/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "elasticAssistant", + "id": "def-server.ElasticAssistantPluginStart.registerFeatures.$1", + "type": "string", + "tags": [], + "label": "pluginName", + "description": [ + "Name of the plugin the features should be registered to" + ], + "signature": [ + "string" + ], + "path": "x-pack/plugins/elastic_assistant/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "elasticAssistant", + "id": "def-server.ElasticAssistantPluginStart.registerFeatures.$2", + "type": "Object", + "tags": [], + "label": "features", + "description": [ + "Partial to be registered with for the given plugin" + ], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/elastic-assistant-common", + "scope": "common", + "docId": "kibKbnElasticAssistantCommonPluginApi", + "section": "def-common.AssistantFeatures", + "text": "AssistantFeatures" + }, + ">" + ], + "path": "x-pack/plugins/elastic_assistant/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "elasticAssistant", + "id": "def-server.ElasticAssistantPluginStart.getRegisteredFeatures", + "type": "Function", + "tags": [], + "label": "getRegisteredFeatures", + "description": [ + "\nGet the registered features for a given plugin name." + ], + "signature": [ + "(pluginName: string) => ", + { + "pluginId": "@kbn/elastic-assistant-common", + "scope": "common", + "docId": "kibKbnElasticAssistantCommonPluginApi", + "section": "def-common.AssistantFeatures", + "text": "AssistantFeatures" + } + ], + "path": "x-pack/plugins/elastic_assistant/server/types.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "elasticAssistant", + "id": "def-server.ElasticAssistantPluginStart.getRegisteredFeatures.$1", + "type": "string", + "tags": [], + "label": "pluginName", + "description": [ + "Name of the plugin to get the features for" + ], + "path": "x-pack/plugins/elastic_assistant/server/services/app_context.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "elasticAssistant", "id": "def-server.ElasticAssistantPluginStart.registerTools", @@ -1762,7 +1872,7 @@ "tags": [], "label": "registerTools", "description": [ - "\nRegister tools to be used by the elastic assistant" + "\nRegister tools to be used by the elastic assistant.\n\nNote: Be sure to use the pluginName that is sent in the request headers by your plugin to ensure it is extracted\nand the correct tools are selected. See {@link getPluginNameFromRequest} for more details.\n" ], "signature": [ "(pluginName: string, tools: ", @@ -1830,7 +1940,7 @@ "tags": [], "label": "getRegisteredTools", "description": [ - "\nGet the registered tools" + "\nGet the registered tools for a given plugin name." ], "signature": [ "(pluginName: string) => ", diff --git a/api_docs/elastic_assistant.mdx b/api_docs/elastic_assistant.mdx index dfb7d99f0c30a..5cab0b700bdec 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'elasticAssistant'] --- import elasticAssistantObj from './elastic_assistant.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/secur | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 36 | 0 | 28 | 0 | +| 41 | 0 | 27 | 0 | ## Server diff --git a/api_docs/embeddable.devdocs.json b/api_docs/embeddable.devdocs.json index c840f13b2782e..3d3a7a27cc44a 100644 --- a/api_docs/embeddable.devdocs.json +++ b/api_docs/embeddable.devdocs.json @@ -396,7 +396,14 @@ "section": "def-public.IContainer", "text": "IContainer" }, - "" + ",", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + } ], "path": "src/plugins/embeddable/public/lib/containers/container.ts", "deprecated": false, @@ -603,6 +610,99 @@ ], "returnComment": [] }, + { + "parentPluginId": "embeddable", + "id": "def-public.Container.removePanel", + "type": "Function", + "tags": [], + "label": "removePanel", + "description": [], + "signature": [ + "(id: string) => void" + ], + "path": "src/plugins/embeddable/public/lib/containers/container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.Container.removePanel.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/embeddable/public/lib/containers/container.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Container.replacePanel", + "type": "Function", + "tags": [], + "label": "replacePanel", + "description": [], + "signature": [ + "(idToRemove: string, { panelType, initialState }: ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PanelPackage", + "text": "PanelPackage" + }, + ") => Promise" + ], + "path": "src/plugins/embeddable/public/lib/containers/container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.Container.replacePanel.$1", + "type": "string", + "tags": [], + "label": "idToRemove", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/embeddable/public/lib/containers/container.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Container.replacePanel.$2", + "type": "Object", + "tags": [], + "label": "{ panelType, initialState }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PanelPackage", + "text": "PanelPackage" + } + ], + "path": "src/plugins/embeddable/public/lib/containers/container.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "embeddable", "id": "def-public.Container.setChildLoaded", @@ -1665,71 +1765,212 @@ }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction", + "id": "def-public.Embeddable", "type": "Class", "tags": [], - "label": "CustomizePanelAction", + "label": "Embeddable", "description": [], "signature": [ { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.CustomizePanelAction", - "text": "CustomizePanelAction" + "section": "def-public.Embeddable", + "text": "Embeddable" }, - " implements ", + " implements ", { - "pluginId": "uiActions", + "pluginId": "embeddable", "scope": "public", - "docId": "kibUiActionsPluginApi", - "section": "def-public.Action", - "text": "Action" + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IEmbeddable", + "text": "IEmbeddable" }, - "<", - "CustomizePanelActionContext", - ">" + "" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.type", + "id": "def-public.Embeddable.runtimeId", + "type": "number", + "tags": [], + "label": "runtimeId", + "description": [], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.runtimeId", + "type": "number", + "tags": [], + "label": "runtimeId", + "description": [], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.parent", + "type": "Object", + "tags": [], + "label": "parent", + "description": [], + "signature": [ + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IContainer", + "text": "IContainer" + }, + "<{}, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerInput", + "text": "ContainerInput" + }, + "<{}>, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" + }, + "> | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.isContainer", + "type": "boolean", + "tags": [], + "label": "isContainer", + "description": [], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.deferEmbeddableLoad", + "type": "boolean", + "tags": [], + "label": "deferEmbeddableLoad", + "description": [], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.type", "type": "string", "tags": [], "label": "type", "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.id", + "id": "def-public.Embeddable.id", "type": "string", "tags": [], "label": "id", "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.order", - "type": "number", + "id": "def-public.Embeddable.fatalError", + "type": "Object", + "tags": [], + "label": "fatalError", + "description": [], + "signature": [ + "Error | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.output", + "type": "Uncategorized", + "tags": [], + "label": "output", + "description": [], + "signature": [ + "TEmbeddableOutput" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.input", + "type": "Uncategorized", + "tags": [], + "label": "input", + "description": [], + "signature": [ + "TEmbeddableInput" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.renderComplete", + "type": "Object", + "tags": [], + "label": "renderComplete", + "description": [], + "signature": [ + { + "pluginId": "kibanaUtils", + "scope": "public", + "docId": "kibKibanaUtilsPluginApi", + "section": "def-public.RenderCompleteDispatcher", + "text": "RenderCompleteDispatcher" + } + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.destroyed", + "type": "boolean", "tags": [], - "label": "order", + "label": "destroyed", "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.Unnamed", + "id": "def-public.Embeddable.Unnamed", "type": "Function", "tags": [], "label": "Constructor", @@ -1737,100 +1978,74 @@ "signature": [ "any" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.Unnamed.$1", - "type": "Object", + "id": "def-public.Embeddable.Unnamed.$1", + "type": "Uncategorized", "tags": [], - "label": "overlays", + "label": "input", "description": [], "signature": [ - { - "pluginId": "@kbn/core-overlays-browser", - "scope": "common", - "docId": "kibKbnCoreOverlaysBrowserPluginApi", - "section": "def-common.OverlayStart", - "text": "OverlayStart" - } + "TEmbeddableInput" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.Unnamed.$2", - "type": "Object", + "id": "def-public.Embeddable.Unnamed.$2", + "type": "Uncategorized", "tags": [], - "label": "theme", + "label": "output", "description": [], "signature": [ - { - "pluginId": "@kbn/core-theme-browser", - "scope": "common", - "docId": "kibKbnCoreThemeBrowserPluginApi", - "section": "def-common.ThemeServiceSetup", - "text": "ThemeServiceSetup" - } + "TEmbeddableOutput" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.Unnamed.$3", + "id": "def-public.Embeddable.Unnamed.$3", "type": "Object", "tags": [], - "label": "editPanel", + "label": "parent", "description": [], "signature": [ { "pluginId": "embeddable", "scope": "public", "docId": "kibEmbeddablePluginApi", - "section": "def-public.EditPanelAction", - "text": "EditPanelAction" - } - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.Unnamed.$4", - "type": "Array", - "tags": [], - "label": "commonlyUsedRanges", - "description": [], - "signature": [ - "CommonlyUsedRange", - "[] | undefined" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.Unnamed.$5", - "type": "string", - "tags": [], - "label": "dateFormat", - "description": [], - "signature": [ - "string | undefined" + "section": "def-public.IContainer", + "text": "IContainer" + }, + "<{}, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerInput", + "text": "ContainerInput" + }, + "<{}>, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" + }, + "> | undefined" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": false @@ -1840,634 +2055,2985 @@ }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.isTimeRangeCompatible", - "type": "Function", + "id": "def-public.Embeddable.uuid", + "type": "string", "tags": [], - "label": "isTimeRangeCompatible", + "label": "uuid", "description": [], - "signature": [ - "({ embeddable }: ", - "CustomizePanelActionContext", - ") => boolean" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.isTimeRangeCompatible.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "CustomizePanelActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] + "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.getDisplayName", + "id": "def-public.Embeddable.onEdit", "type": "Function", "tags": [], - "label": "getDisplayName", + "label": "onEdit", "description": [], "signature": [ - "({ embeddable }: ", - "CustomizePanelActionContext", - ") => string" + "() => void" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.getDisplayName.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "CustomizePanelActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] + "returnComment": [], + "children": [] }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.getIconType", - "type": "Function", + "id": "def-public.Embeddable.viewMode", + "type": "Object", "tags": [], - "label": "getIconType", + "label": "viewMode", "description": [], "signature": [ - "() => string" + "{ readonly value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + "; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + "; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">> | ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + " | undefined>; }; }" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] + "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.isCompatible", - "type": "Function", + "id": "def-public.Embeddable.parentApi", + "type": "CompoundType", "tags": [], - "label": "isCompatible", + "label": "parentApi", "description": [], "signature": [ - "({ embeddable }: ", - "CustomizePanelActionContext", - ") => Promise" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ + "(", { - "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.isCompatible.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "CustomizePanelActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + }, + " & Partial & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">) | undefined" ], - "returnComment": [] + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.execute", - "type": "Function", + "id": "def-public.Embeddable.dataViews", + "type": "Object", "tags": [], - "label": "execute", + "label": "dataViews", "description": [], "signature": [ - "({ embeddable }: ", - "CustomizePanelActionContext", - ") => Promise" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ + "{ readonly value: ", { - "parentPluginId": "embeddable", - "id": "def-public.CustomizePanelAction.execute.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "CustomizePanelActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction", - "type": "Class", - "tags": [], - "label": "EditPanelAction", - "description": [], - "signature": [ - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.EditPanelAction", - "text": "EditPanelAction" - }, - " implements ", - { - "pluginId": "uiActions", - "scope": "public", - "docId": "kibUiActionsPluginApi", - "section": "def-public.Action", - "text": "Action" + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>> | ((value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; }; }" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false }, - "" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.type", - "type": "string", + "id": "def-public.Embeddable.localQuery", + "type": "Object", "tags": [], - "label": "type", + "label": "localQuery", "description": [], "signature": [ - "\"editPanel\"" + "{ readonly value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>> | ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; }; }" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.id", - "type": "string", + "id": "def-public.Embeddable.panelTitle", + "type": "Object", "tags": [], - "label": "id", + "label": "panelTitle", "description": [], "signature": [ - "\"editPanel\"" + "{ readonly value: string | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: string | undefined) => void): Promise; (next: (value: string | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => string | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: string | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: string | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.order", - "type": "number", + "id": "def-public.Embeddable.dataLoading", + "type": "Object", "tags": [], - "label": "order", + "label": "dataLoading", "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", + "signature": [ + "{ readonly value: boolean | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: boolean | undefined) => void): Promise; (next: (value: boolean | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => boolean | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: boolean | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: boolean | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.currentAppId", - "type": "string", + "id": "def-public.Embeddable.localFilters", + "type": "Object", "tags": [], - "label": "currentAppId", + "label": "localFilters", "description": [], "signature": [ - "string | undefined" + "{ readonly value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>> | ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; }; }" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.Unnamed", - "type": "Function", + "id": "def-public.Embeddable.onPhaseChange", + "type": "Object", "tags": [], - "label": "Constructor", + "label": "onPhaseChange", "description": [], "signature": [ - "any" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + "{ readonly value: ", { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.Unnamed.$1", - "type": "Function", - "tags": [], - "label": "getEmbeddableFactory", - "description": [], - "signature": [ - " = ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.IEmbeddable", - "text": "IEmbeddable" - }, - ">(embeddableFactoryId: string) => ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.EmbeddableFactory", - "text": "EmbeddableFactory" - }, - " | undefined" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" }, + " | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.Unnamed.$2", - "type": "Object", - "tags": [], - "label": "application", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-application-browser", - "scope": "common", - "docId": "kibKbnCoreApplicationBrowserPluginApi", - "section": "def-common.ApplicationStart", - "text": "ApplicationStart" - } - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" }, + " | undefined) => void): Promise; (next: (value: ", { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.Unnamed.$3", - "type": "Object", - "tags": [], - "label": "stateTransfer", - "description": [], - "signature": [ - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.EmbeddableStateTransfer", - "text": "EmbeddableStateTransfer" - }, - " | undefined" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.getDisplayName", - "type": "Function", - "tags": [], - "label": "getDisplayName", - "description": [], - "signature": [ - "({ embeddable }: ActionContext) => string" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.getDisplayName.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "ActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.getIconType", - "type": "Function", - "tags": [], - "label": "getIconType", - "description": [], - "signature": [ - "() => string" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.isCompatible", - "type": "Function", - "tags": [], - "label": "isCompatible", - "description": [], - "signature": [ - "({ embeddable }: ActionContext) => Promise" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>> | ((value: ", { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.isCompatible.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "ActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; }; }" ], - "returnComment": [] + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.execute", + "id": "def-public.Embeddable.linkToLibrary", "type": "Function", "tags": [], - "label": "execute", + "label": "linkToLibrary", "description": [], "signature": [ - "(context: ActionContext) => Promise" + "(() => Promise) | undefined" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.execute.$1", - "type": "Object", - "tags": [], - "label": "context", - "description": [], - "signature": [ - "ActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] + "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.getAppTarget", - "type": "Function", + "id": "def-public.Embeddable.blockingError", + "type": "Object", "tags": [], - "label": "getAppTarget", + "label": "blockingError", "description": [], "signature": [ - "({ embeddable }: ActionContext) => NavigationContext | undefined" + "{ readonly value: Error | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: Error | undefined) => void): Promise; (next: (value: Error | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => Error | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: Error | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: Error | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.getAppTarget.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "ActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] + "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.getHref", + "id": "def-public.Embeddable.setPanelTitle", "type": "Function", "tags": [], - "label": "getHref", + "label": "setPanelTitle", "description": [], "signature": [ - "({ embeddable }: ActionContext) => Promise" + "(newTitle: string | undefined) => void" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false, + "returnComment": [], "children": [ { "parentPluginId": "embeddable", - "id": "def-public.EditPanelAction.getHref.$1", - "type": "Object", + "id": "def-public.Embeddable.setPanelTitle.$1", + "type": "string", "tags": [], - "label": "{ embeddable }", + "label": "newTitle", "description": [], "signature": [ - "ActionContext" + "string | undefined" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", "deprecated": false, - "trackAdoption": false, - "isRequired": true + "trackAdoption": false } - ], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.Embeddable", - "type": "Class", - "tags": [], - "label": "Embeddable", - "description": [], - "signature": [ - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.Embeddable", - "text": "Embeddable" - }, - " implements ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.IEmbeddable", - "text": "IEmbeddable" - }, - "" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.Embeddable.runtimeId", - "type": "number", - "tags": [], - "label": "runtimeId", - "description": [], - "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.Embeddable.runtimeId", - "type": "number", - "tags": [], - "label": "runtimeId", - "description": [], - "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", - "deprecated": false, - "trackAdoption": false + ] }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.parent", + "id": "def-public.Embeddable.localTimeRange", "type": "Object", "tags": [], - "label": "parent", + "label": "localTimeRange", "description": [], "signature": [ + "{ readonly value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" }, - "<{}, ", + " | undefined>> | ((value: ", { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" }, - "<{}>, ", + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" }, - "> | undefined" + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; }; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -2475,57 +5041,521 @@ }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.isContainer", - "type": "boolean", + "id": "def-public.Embeddable.hidePanelTitle", + "type": "Object", "tags": [], - "label": "isContainer", + "label": "hidePanelTitle", "description": [], + "signature": [ + "{ readonly value: boolean | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: boolean | undefined) => void): Promise; (next: (value: boolean | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => boolean | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: boolean | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: boolean | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.deferEmbeddableLoad", - "type": "boolean", + "id": "def-public.Embeddable.isEditingEnabled", + "type": "Function", "tags": [], - "label": "deferEmbeddableLoad", + "label": "isEditingEnabled", "description": [], + "signature": [ + "() => boolean" + ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "returnComment": [], + "children": [] }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.type", - "type": "string", + "id": "def-public.Embeddable.canLinkToLibrary", + "type": "Function", "tags": [], - "label": "type", + "label": "canLinkToLibrary", "description": [], + "signature": [ + "(() => Promise) | undefined" + ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.id", - "type": "string", + "id": "def-public.Embeddable.panelDescription", + "type": "Object", "tags": [], - "label": "id", + "label": "panelDescription", "description": [], + "signature": [ + "{ readonly value: string | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: string | undefined) => void): Promise; (next: (value: string | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => string | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: string | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: string | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.fatalError", + "id": "def-public.Embeddable.disabledActionIds", "type": "Object", "tags": [], - "label": "fatalError", + "label": "disabledActionIds", "description": [], "signature": [ - "Error | undefined" + "{ readonly value: string[] | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: string[] | undefined) => void): Promise; (next: (value: string[] | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => string[] | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: string[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: string[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -2533,13 +5563,13 @@ }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.output", - "type": "Uncategorized", + "id": "def-public.Embeddable.unlinkFromLibrary", + "type": "Function", "tags": [], - "label": "output", + "label": "unlinkFromLibrary", "description": [], "signature": [ - "TEmbeddableOutput" + "(() => Promise) | undefined" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -2547,33 +5577,66 @@ }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.input", - "type": "Uncategorized", + "id": "def-public.Embeddable.setLocalTimeRange", + "type": "Function", "tags": [], - "label": "input", + "label": "setLocalTimeRange", "description": [], "signature": [ - "TEmbeddableInput" + "(timeRange: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, - "trackAdoption": false + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.setLocalTimeRange.$1", + "type": "Object", + "tags": [], + "label": "timeRange", + "description": [], + "signature": [ + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false + } + ] }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.renderComplete", + "id": "def-public.Embeddable.defaultPanelTitle", "type": "Object", "tags": [], - "label": "renderComplete", + "label": "defaultPanelTitle", "description": [], "signature": [ { - "pluginId": "kibanaUtils", - "scope": "public", - "docId": "kibKibanaUtilsPluginApi", - "section": "def-public.RenderCompleteDispatcher", - "text": "RenderCompleteDispatcher" - } + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + " | undefined" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, @@ -2581,98 +5644,146 @@ }, { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.destroyed", - "type": "boolean", - "tags": [], - "label": "destroyed", - "description": [], - "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.Embeddable.Unnamed", + "id": "def-public.Embeddable.setHidePanelTitle", "type": "Function", "tags": [], - "label": "Constructor", + "label": "setHidePanelTitle", "description": [], "signature": [ - "any" + "(hide: boolean | undefined) => void" ], "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", "deprecated": false, "trackAdoption": false, + "returnComment": [], "children": [ { "parentPluginId": "embeddable", - "id": "def-public.Embeddable.Unnamed.$1", - "type": "Uncategorized", - "tags": [], - "label": "input", - "description": [], - "signature": [ - "TEmbeddableInput" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "embeddable", - "id": "def-public.Embeddable.Unnamed.$2", - "type": "Uncategorized", + "id": "def-public.Embeddable.setHidePanelTitle.$1", + "type": "CompoundType", "tags": [], - "label": "output", + "label": "hide", "description": [], "signature": [ - "TEmbeddableOutput" + "boolean | undefined" ], - "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "embeddable", - "id": "def-public.Embeddable.Unnamed.$3", - "type": "Object", - "tags": [], - "label": "parent", - "description": [], - "signature": [ - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" - }, - "<{}, ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" - }, - "<{}>, ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" - }, - "> | undefined" + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.getTypeDisplayName", + "type": "Function", + "tags": [], + "label": "getTypeDisplayName", + "description": [], + "signature": [ + "() => string" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.setPanelDescription", + "type": "Function", + "tags": [], + "label": "setPanelDescription", + "description": [], + "signature": [ + "(newTitle: string | undefined) => void" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.setPanelDescription.$1", + "type": "string", + "tags": [], + "label": "newTitle", + "description": [], + "signature": [ + "string | undefined" ], - "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", "deprecated": false, - "trackAdoption": false, - "isRequired": false + "trackAdoption": false } + ] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.canUnlinkFromLibrary", + "type": "Function", + "tags": [], + "label": "canUnlinkFromLibrary", + "description": [], + "signature": [ + "(() => Promise) | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.getFallbackTimeRange", + "type": "Function", + "tags": [], + "label": "getFallbackTimeRange", + "description": [], + "signature": [ + "(() => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.isCompatibleWithLocalUnifiedSearch", + "type": "Function", + "tags": [], + "label": "isCompatibleWithLocalUnifiedSearch", + "description": [], + "signature": [ + "(() => boolean) | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.getEditHref", + "type": "Function", + "tags": [], + "label": "getEditHref", + "description": [], + "signature": [ + "() => string | undefined" ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], "returnComment": [] }, { @@ -3151,6 +6262,22 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "embeddable", + "id": "def-public.Embeddable.untilInitializationFinished", + "type": "Function", + "tags": [], + "label": "untilInitializationFinished", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "embeddable", "id": "def-public.Embeddable.setInitializationFinished", @@ -3888,239 +7015,45 @@ "scope": "public", "docId": "kibEmbeddablePluginApi", "section": "def-public.EmbeddableOutput", - "text": "EmbeddableOutput" - }, - ", React.ReactNode>" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.ErrorEmbeddable.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"error\"" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.ErrorEmbeddable.error", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "string | Error" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.ErrorEmbeddable.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [], - "signature": [ - "any" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.ErrorEmbeddable.Unnamed.$1", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - "string | Error" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "embeddable", - "id": "def-public.ErrorEmbeddable.Unnamed.$2", - "type": "Object", - "tags": [], - "label": "input", - "description": [], - "signature": [ - { - "pluginId": "embeddable", - "scope": "common", - "docId": "kibEmbeddablePluginApi", - "section": "def-common.EmbeddableInput", - "text": "EmbeddableInput" - } - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "embeddable", - "id": "def-public.ErrorEmbeddable.Unnamed.$3", - "type": "Object", - "tags": [], - "label": "parent", - "description": [], - "signature": [ - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.IContainer", - "text": "IContainer" - }, - "<{}, ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerInput", - "text": "ContainerInput" - }, - "<{}>, ", - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.ContainerOutput", - "text": "ContainerOutput" - }, - "> | undefined" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": false - } - ], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.ErrorEmbeddable.reload", - "type": "Function", - "tags": [], - "label": "reload", - "description": [], - "signature": [ - "() => void" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.ErrorEmbeddable.render", - "type": "Function", - "tags": [], - "label": "render", - "description": [], - "signature": [ - "() => JSX.Element" - ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction", - "type": "Class", - "tags": [], - "label": "InspectPanelAction", - "description": [], - "signature": [ - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.InspectPanelAction", - "text": "InspectPanelAction" - }, - " implements ", - { - "pluginId": "uiActions", - "scope": "public", - "docId": "kibUiActionsPluginApi", - "section": "def-public.Action", - "text": "Action" + "text": "EmbeddableOutput" }, - "" + ", React.ReactNode>" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.type", + "id": "def-public.ErrorEmbeddable.type", "type": "string", "tags": [], "label": "type", "description": [], "signature": [ - "\"openInspector\"" + "\"error\"" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.id", - "type": "string", + "id": "def-public.ErrorEmbeddable.error", + "type": "CompoundType", "tags": [], - "label": "id", + "label": "error", "description": [], "signature": [ - "\"openInspector\"" + "string | Error" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.order", - "type": "number", - "tags": [], - "label": "order", - "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.Unnamed", + "id": "def-public.ErrorEmbeddable.Unnamed", "type": "Function", "tags": [], "label": "Constructor", @@ -4128,45 +7061,98 @@ "signature": [ "any" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.Unnamed.$1", + "id": "def-public.ErrorEmbeddable.Unnamed.$1", + "type": "CompoundType", + "tags": [], + "label": "error", + "description": [], + "signature": [ + "string | Error" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "embeddable", + "id": "def-public.ErrorEmbeddable.Unnamed.$2", "type": "Object", "tags": [], - "label": "inspector", + "label": "input", "description": [], "signature": [ { - "pluginId": "inspector", - "scope": "public", - "docId": "kibInspectorPluginApi", - "section": "def-public.Start", - "text": "Start" + "pluginId": "embeddable", + "scope": "common", + "docId": "kibEmbeddablePluginApi", + "section": "def-common.EmbeddableInput", + "text": "EmbeddableInput" } ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "embeddable", + "id": "def-public.ErrorEmbeddable.Unnamed.$3", + "type": "Object", + "tags": [], + "label": "parent", + "description": [], + "signature": [ + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.IContainer", + "text": "IContainer" + }, + "<{}, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerInput", + "text": "ContainerInput" + }, + "<{}>, ", + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.ContainerOutput", + "text": "ContainerOutput" + }, + "> | undefined" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [] }, { "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.getDisplayName", + "id": "def-public.ErrorEmbeddable.reload", "type": "Function", "tags": [], - "label": "getDisplayName", + "label": "reload", "description": [], "signature": [ - "() => string" + "() => void" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -4174,83 +7160,19 @@ }, { "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.getIconType", + "id": "def-public.ErrorEmbeddable.render", "type": "Function", "tags": [], - "label": "getIconType", + "label": "render", "description": [], "signature": [ - "() => string" + "() => JSX.Element" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", "deprecated": false, "trackAdoption": false, "children": [], "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.isCompatible", - "type": "Function", - "tags": [], - "label": "isCompatible", - "description": [], - "signature": [ - "({ embeddable }: ActionContext) => Promise" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.isCompatible.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "ActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.execute", - "type": "Function", - "tags": [], - "label": "execute", - "description": [], - "signature": [ - "({ embeddable }: ActionContext) => Promise" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.InspectPanelAction.execute.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "ActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] } ], "initialIsOpen": false @@ -4305,192 +7227,42 @@ } ], "initialIsOpen": false - }, + } + ], + "functions": [ { "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction", - "type": "Class", + "id": "def-public.CreateEmbeddableComponent", + "type": "Function", "tags": [], - "label": "RemovePanelAction", + "label": "CreateEmbeddableComponent", "description": [], "signature": [ - { - "pluginId": "embeddable", - "scope": "public", - "docId": "kibEmbeddablePluginApi", - "section": "def-public.RemovePanelAction", - "text": "RemovePanelAction" - }, - " implements ", - { - "pluginId": "uiActions", - "scope": "public", - "docId": "kibUiActionsPluginApi", - "section": "def-public.Action", - "text": "Action" - }, - "" + "(component: (ref: React.ForwardedRef) => React.ReactElement> | null) => React.ForwardRefExoticComponent, \"key\" | \"css\"> & React.RefAttributes>" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", + "path": "src/plugins/embeddable/public/registry/create_embeddable_component.ts", "deprecated": false, "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"deletePanel\"" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "signature": [ - "\"deletePanel\"" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.order", - "type": "number", - "tags": [], - "label": "order", - "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [], - "signature": [ - "any" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.getDisplayName", - "type": "Function", - "tags": [], - "label": "getDisplayName", - "description": [], - "signature": [ - "() => string" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.getIconType", - "type": "Function", - "tags": [], - "label": "getIconType", - "description": [], - "signature": [ - "() => string" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.isCompatible", - "type": "Function", - "tags": [], - "label": "isCompatible", - "description": [], - "signature": [ - "({ embeddable }: ActionContext) => Promise" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.isCompatible.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "ActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, + "children": [ { "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.execute", + "id": "def-public.CreateEmbeddableComponent.$1", "type": "Function", "tags": [], - "label": "execute", + "label": "component", "description": [], "signature": [ - "({ embeddable }: ActionContext) => Promise" + "(ref: React.ForwardedRef) => React.ReactElement> | null" ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", + "path": "src/plugins/embeddable/public/registry/create_embeddable_component.ts", "deprecated": false, "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.RemovePanelAction.execute.$1", - "type": "Object", - "tags": [], - "label": "{ embeddable }", - "description": [], - "signature": [ - "ActionContext" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] + "isRequired": true } ], + "returnComment": [], "initialIsOpen": false - } - ], - "functions": [ + }, { "parentPluginId": "embeddable", "id": "def-public.defaultEmbeddableFactoryProvider", @@ -4610,28 +7382,28 @@ "tags": [], "label": "EmbeddablePanel", "description": [ - "\nLoads and renders an embeddable." + "\nLoads and renders a legacy embeddable." ], "signature": [ "(props: ", "EmbeddablePanelProps", ") => JSX.Element" ], - "path": "src/plugins/embeddable/public/embeddable_panel/index.tsx", + "path": "src/plugins/embeddable/public/embeddable_panel/embeddable_panel.tsx", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "embeddable", "id": "def-public.EmbeddablePanel.$1", - "type": "Object", + "type": "CompoundType", "tags": [], "label": "props", "description": [], "signature": [ "EmbeddablePanelProps" ], - "path": "src/plugins/embeddable/public/embeddable_panel/index.tsx", + "path": "src/plugins/embeddable/public/embeddable_panel/embeddable_panel.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -4953,7 +7725,7 @@ }, " | TEmbeddable) => boolean" ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/is_error_embeddable.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -4974,7 +7746,7 @@ }, " | TEmbeddable" ], - "path": "src/plugins/embeddable/public/lib/embeddables/error_embeddable.tsx", + "path": "src/plugins/embeddable/public/lib/embeddables/is_error_embeddable.ts", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -6042,39 +8814,6 @@ "returnComment": [], "initialIsOpen": false }, - { - "parentPluginId": "embeddable", - "id": "def-public.tracksOverlays", - "type": "Function", - "tags": [], - "label": "tracksOverlays", - "description": [], - "signature": [ - "(root: unknown) => root is TracksOverlays" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/track_overlays.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.tracksOverlays.$1", - "type": "Unknown", - "tags": [], - "label": "root", - "description": [], - "signature": [ - "unknown" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/track_overlays.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "embeddable", "id": "def-public.useEmbeddableFactory", @@ -6437,7 +9176,7 @@ "tags": [], "label": "EmbeddableAppContext", "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -6453,7 +9192,7 @@ "signature": [ "(() => string) | undefined" ], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", "deprecated": false, "trackAdoption": false, "children": [], @@ -6469,13 +9208,103 @@ "signature": [ "string | undefined" ], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", + "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", "deprecated": false, "trackAdoption": false } ], "initialIsOpen": false }, + { + "parentPluginId": "embeddable", + "id": "def-public.EmbeddableComponentFactory", + "type": "Interface", + "tags": [], + "label": "EmbeddableComponentFactory", + "description": [], + "signature": [ + { + "pluginId": "embeddable", + "scope": "public", + "docId": "kibEmbeddablePluginApi", + "section": "def-public.EmbeddableComponentFactory", + "text": "EmbeddableComponentFactory" + }, + "" + ], + "path": "src/plugins/embeddable/public/registry/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.EmbeddableComponentFactory.getComponent", + "type": "Function", + "tags": [], + "label": "getComponent", + "description": [], + "signature": [ + "(initialState: StateType) => Promise<", + "EmbeddableComponent", + ">" + ], + "path": "src/plugins/embeddable/public/registry/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.EmbeddableComponentFactory.getComponent.$1", + "type": "Uncategorized", + "tags": [], + "label": "initialState", + "description": [], + "signature": [ + "StateType" + ], + "path": "src/plugins/embeddable/public/registry/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.EmbeddableComponentFactory.deserializeState", + "type": "Function", + "tags": [], + "label": "deserializeState", + "description": [], + "signature": [ + "(state: unknown) => StateType" + ], + "path": "src/plugins/embeddable/public/registry/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "embeddable", + "id": "def-public.EmbeddableComponentFactory.deserializeState.$1", + "type": "Unknown", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "unknown" + ], + "path": "src/plugins/embeddable/public/registry/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "embeddable", "id": "def-public.EmbeddableContainerSettings", @@ -7585,77 +10414,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "embeddable", - "id": "def-public.EmbeddablePhaseEvent", - "type": "Interface", - "tags": [], - "label": "EmbeddablePhaseEvent", - "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "embeddable", - "id": "def-public.EmbeddablePhaseEvent.id", - "type": "string", - "tags": [], - "label": "id", - "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.EmbeddablePhaseEvent.status", - "type": "CompoundType", - "tags": [], - "label": "status", - "description": [], - "signature": [ - "\"error\" | \"loading\" | \"rendered\" | \"loaded\"" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.EmbeddablePhaseEvent.error", - "type": "CompoundType", - "tags": [], - "label": "error", - "description": [], - "signature": [ - { - "pluginId": "expressions", - "scope": "common", - "docId": "kibExpressionsPluginApi", - "section": "def-common.ErrorLike", - "text": "ErrorLike" - }, - " | undefined" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.EmbeddablePhaseEvent.timeToEvent", - "type": "number", - "tags": [], - "label": "timeToEvent", - "description": [], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "embeddable", "id": "def-public.EmbeddableSetupDependencies", @@ -7793,7 +10551,15 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + "[]>; readonly getFrequentlyChangingActionsForTrigger: (triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", @@ -7961,7 +10727,7 @@ "tags": [], "label": "FilterableEmbeddable", "description": [ - "\nAll embeddables that implement this interface should support being filtered\nand/or queried via the top navigation bar" + "\nAll embeddables that implement this interface should support being filtered\nand/or queried via the top navigation bar." ], "path": "src/plugins/embeddable/public/lib/filterable_embeddable/types.ts", "deprecated": false, @@ -7977,7 +10743,7 @@ "\nGets the embeddable's local filters" ], "signature": [ - "() => Promise<", + "() => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -7985,7 +10751,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[]>" + "[]" ], "path": "src/plugins/embeddable/public/lib/filterable_embeddable/types.ts", "deprecated": false, @@ -8003,7 +10769,7 @@ "\nGets the embeddable's local query" ], "signature": [ - "() => Promise<", + "() => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -8019,7 +10785,7 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>" + " | undefined" ], "path": "src/plugins/embeddable/public/lib/filterable_embeddable/types.ts", "deprecated": false, @@ -8687,7 +11453,8 @@ "section": "def-public.IEmbeddable", "text": "IEmbeddable" }, - "" + " extends ", + "LegacyEmbeddableAPI" ], "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", "deprecated": false, @@ -9434,6 +12201,22 @@ "trackAdoption": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "embeddable", + "id": "def-public.IEmbeddable.untilInitializationFinished", + "type": "Function", + "tags": [], + "label": "untilInitializationFinished", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "src/plugins/embeddable/public/lib/embeddables/i_embeddable.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] } ], "initialIsOpen": false @@ -9971,51 +12754,6 @@ } ], "misc": [ - { - "parentPluginId": "embeddable", - "id": "def-public.ACTION_CUSTOMIZE_PANEL", - "type": "string", - "tags": [], - "label": "ACTION_CUSTOMIZE_PANEL", - "description": [], - "signature": [ - "\"ACTION_CUSTOMIZE_PANEL\"" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/customize_panel_action/customize_panel_action.tsx", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.ACTION_EDIT_PANEL", - "type": "string", - "tags": [], - "label": "ACTION_EDIT_PANEL", - "description": [], - "signature": [ - "\"editPanel\"" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/edit_panel_action/edit_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "embeddable", - "id": "def-public.ACTION_INSPECT_PANEL", - "type": "string", - "tags": [], - "label": "ACTION_INSPECT_PANEL", - "description": [], - "signature": [ - "\"openInspector\"" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/inspect_panel_action/inspect_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "embeddable", "id": "def-public.ATTRIBUTE_SERVICE_KEY", @@ -10178,23 +12916,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "embeddable", - "id": "def-public.EmbeddablePhase", - "type": "Type", - "tags": [], - "label": "EmbeddablePhase", - "description": [ - "\n Performance tracking types" - ], - "signature": [ - "\"error\" | \"loading\" | \"rendered\" | \"loaded\"" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "embeddable", "id": "def-public.EmbeddableRendererProps", @@ -10272,21 +12993,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "embeddable", - "id": "def-public.REMOVE_PANEL_ACTION", - "type": "string", - "tags": [], - "label": "REMOVE_PANEL_ACTION", - "description": [], - "signature": [ - "\"deletePanel\"" - ], - "path": "src/plugins/embeddable/public/embeddable_panel/panel_actions/remove_panel_action/remove_panel_action.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "embeddable", "id": "def-public.SELECT_RANGE_TRIGGER", diff --git a/api_docs/embeddable.mdx b/api_docs/embeddable.mdx index 7b0b5851dd68e..8fe84c83abfae 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'embeddable'] --- import embeddableObj from './embeddable.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 | |-------------------|-----------|------------------------|-----------------| -| 547 | 1 | 446 | 8 | +| 520 | 1 | 420 | 8 | ## Client diff --git a/api_docs/embeddable_enhanced.mdx b/api_docs/embeddable_enhanced.mdx index 9918254100888..805f2f6f3c05a 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-01-04 +date: 2024-01-25 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 daa6d36a96145..d9189bfb1b186 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-01-04 +date: 2024-01-25 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 9474de5f81979..492bb61c14f16 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'enterpriseSearch'] --- import enterpriseSearchObj from './enterprise_search.devdocs.json'; diff --git a/api_docs/es_ui_shared.mdx b/api_docs/es_ui_shared.mdx index 8320de7c77f9f..8b14943da5c03 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'esUiShared'] --- import esUiSharedObj from './es_ui_shared.devdocs.json'; diff --git a/api_docs/event_annotation.devdocs.json b/api_docs/event_annotation.devdocs.json index 1f5334176836c..767d950210c22 100644 --- a/api_docs/event_annotation.devdocs.json +++ b/api_docs/event_annotation.devdocs.json @@ -1911,7 +1911,7 @@ "label": "options", "description": [], "signature": [ - "(\"alert\" | \"tag\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"circle\" | \"triangle\")[]" + "(\"alert\" | \"circle\" | \"tag\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"triangle\")[]" ], "path": "src/plugins/event_annotation/common/manual_event_annotation/index.ts", "deprecated": false, @@ -3033,7 +3033,7 @@ "label": "options", "description": [], "signature": [ - "(\"alert\" | \"tag\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"circle\" | \"triangle\")[]" + "(\"alert\" | \"circle\" | \"tag\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"triangle\")[]" ], "path": "src/plugins/event_annotation/common/query_point_event_annotation/index.ts", "deprecated": false, diff --git a/api_docs/event_annotation.mdx b/api_docs/event_annotation.mdx index 3bc7ef1e9dd79..f3864f1bae4d3 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-01-04 +date: 2024-01-25 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 4f01a013f6552..37debb4e81480 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-01-04 +date: 2024-01-25 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 a86c89ba5fa8b..5c0544398dadb 100644 --- a/api_docs/event_log.devdocs.json +++ b/api_docs/event_log.devdocs.json @@ -805,6 +805,21 @@ "deprecated": false, "trackAdoption": false, "children": [ + { + "parentPluginId": "eventLog", + "id": "def-server.AggregateEventsBySavedObjectResult.hits", + "type": "Object", + "tags": [], + "label": "hits", + "description": [], + "signature": [ + "SearchHitsMetadata", + " | undefined" + ], + "path": "x-pack/plugins/event_log/server/es/cluster_client_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "eventLog", "id": "def-server.AggregateEventsBySavedObjectResult.aggregations", @@ -1435,7 +1450,7 @@ "label": "data", "description": [], "signature": [ - "(Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: 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; name?: string | undefined; license?: string | undefined; description?: string | undefined; category?: string | undefined; uuid?: string | undefined; version?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ 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; alerting?: Readonly<{ outcome?: 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; status?: string | 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_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; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; duration?: string | number | undefined; timezone?: string | undefined; risk_score?: number | undefined; severity?: string | number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; code?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: 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<{ type?: string | undefined; id?: 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; name?: string | undefined; license?: string | undefined; description?: string | undefined; category?: string | undefined; uuid?: string | undefined; version?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ 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; alerting?: Readonly<{ summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; outcome?: string | undefined; status?: string | 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_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; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; code?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; duration?: string | number | undefined; timezone?: string | undefined; risk_score?: number | undefined; severity?: string | number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: 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, @@ -1455,7 +1470,7 @@ "label": "IEvent", "description": [], "signature": [ - "DeepPartial | undefined; error?: Readonly<{ type?: string | undefined; id?: 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; name?: string | undefined; license?: string | undefined; description?: string | undefined; category?: string | undefined; uuid?: string | undefined; version?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ 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; alerting?: Readonly<{ outcome?: 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; status?: string | 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_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; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; duration?: string | number | undefined; timezone?: string | undefined; risk_score?: number | undefined; severity?: string | number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; code?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: 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<{ type?: string | undefined; id?: 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; name?: string | undefined; license?: string | undefined; description?: string | undefined; category?: string | undefined; uuid?: string | undefined; version?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ 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; alerting?: Readonly<{ summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; outcome?: string | undefined; status?: string | 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_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; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; code?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; duration?: string | number | undefined; timezone?: string | undefined; risk_score?: number | undefined; severity?: string | number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: 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, @@ -1470,7 +1485,7 @@ "label": "IValidatedEvent", "description": [], "signature": [ - "Readonly<{ log?: Readonly<{ logger?: string | undefined; level?: string | undefined; } & {}> | undefined; error?: Readonly<{ type?: string | undefined; id?: 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; name?: string | undefined; license?: string | undefined; description?: string | undefined; category?: string | undefined; uuid?: string | undefined; version?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ 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; alerting?: Readonly<{ outcome?: 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; status?: string | 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_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; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; duration?: string | number | undefined; timezone?: string | undefined; risk_score?: number | undefined; severity?: string | number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; code?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: 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<{ type?: string | undefined; id?: 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; name?: string | undefined; license?: string | undefined; description?: string | undefined; category?: string | undefined; uuid?: string | undefined; version?: string | undefined; reference?: string | undefined; author?: string[] | undefined; ruleset?: string | undefined; } & {}> | undefined; kibana?: Readonly<{ 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; alerting?: Readonly<{ summary?: Readonly<{ recovered?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; new?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; ongoing?: Readonly<{ count?: string | number | undefined; } & {}> | undefined; } & {}> | undefined; outcome?: string | undefined; status?: string | 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_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; } & {}> | undefined; rule_type_id?: string | undefined; } & {}> | undefined; uuid?: string | undefined; flapping?: boolean | undefined; maintenance_window_ids?: string[] | undefined; } & {}> | undefined; version?: string | undefined; server_uuid?: string | undefined; task?: Readonly<{ id?: string | undefined; schedule_delay?: string | number | undefined; scheduled?: string | undefined; } & {}> | undefined; saved_objects?: Readonly<{ type?: string | undefined; id?: string | undefined; namespace?: string | undefined; rel?: string | undefined; type_id?: string | undefined; space_agnostic?: boolean | undefined; } & {}>[] | undefined; space_ids?: string[] | undefined; } & {}> | undefined; event?: Readonly<{ type?: string[] | undefined; reason?: string | undefined; action?: string | undefined; id?: string | undefined; start?: string | undefined; end?: string | undefined; code?: string | undefined; category?: string[] | undefined; outcome?: string | undefined; duration?: string | number | undefined; timezone?: string | undefined; risk_score?: number | undefined; severity?: string | number | undefined; url?: string | undefined; created?: string | undefined; dataset?: string | undefined; hash?: string | undefined; ingested?: string | undefined; kind?: string | undefined; module?: string | undefined; original?: string | undefined; provider?: 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 dc3c20ed884e9..ccac1d19007ca 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'eventLog'] --- import eventLogObj from './event_log.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 | |-------------------|-----------|------------------------|-----------------| -| 111 | 0 | 111 | 11 | +| 112 | 0 | 112 | 11 | ## Server diff --git a/api_docs/exploratory_view.mdx b/api_docs/exploratory_view.mdx index 1086207ae79e0..bda42007bb3d3 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-01-04 +date: 2024-01-25 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 ec4f95d64f91b..59299c2403ef9 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionError'] --- import expressionErrorObj from './expression_error.devdocs.json'; diff --git a/api_docs/expression_gauge.devdocs.json b/api_docs/expression_gauge.devdocs.json index b38c5c31347ff..896d8e7b0818a 100644 --- a/api_docs/expression_gauge.devdocs.json +++ b/api_docs/expression_gauge.devdocs.json @@ -913,7 +913,7 @@ }, "<", "GoalDomainRange", - ">; actual?: number | undefined; base?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", + ">; base?: number | undefined; actual?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", "GoalLabelAccessor", " | undefined; labelMinor?: string | ", "GoalLabelAccessor", @@ -1207,7 +1207,7 @@ }, "<", "GoalDomainRange", - ">; actual?: number | undefined; base?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", + ">; base?: number | undefined; actual?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", "GoalLabelAccessor", " | undefined; labelMinor?: string | ", "GoalLabelAccessor", @@ -1257,7 +1257,15 @@ "CustomXDomain", " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined; }" + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined; shouldUseVeil: boolean; setChartSize: (d: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.ChartSizeSpec", + "text": "ChartSizeSpec" + }, + ") => void; }" ], "path": "src/plugins/chart_expressions/expression_gauge/common/types/expression_renderers.ts", "deprecated": false, diff --git a/api_docs/expression_gauge.mdx b/api_docs/expression_gauge.mdx index fdf929c6a59cb..f8756060ab775 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionGauge'] --- import expressionGaugeObj from './expression_gauge.devdocs.json'; diff --git a/api_docs/expression_heatmap.devdocs.json b/api_docs/expression_heatmap.devdocs.json index 90835598df7ca..855d858f60722 100644 --- a/api_docs/expression_heatmap.devdocs.json +++ b/api_docs/expression_heatmap.devdocs.json @@ -527,7 +527,7 @@ "CustomXDomain", " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined" + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined" ], "path": "src/plugins/chart_expressions/expression_heatmap/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_heatmap.mdx b/api_docs/expression_heatmap.mdx index 38d225279672a..393b33db83823 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-01-04 +date: 2024-01-25 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 27e04629ee41c..f723a46b101e9 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-01-04 +date: 2024-01-25 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 dee6029f3cb90..0494057a51ab9 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-01-04 +date: 2024-01-25 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 3096059ad7670..6a564306b3831 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionMetric'] --- import expressionMetricObj from './expression_metric.devdocs.json'; diff --git a/api_docs/expression_metric_vis.devdocs.json b/api_docs/expression_metric_vis.devdocs.json index 37d520de6b448..fe17f346e9f5f 100644 --- a/api_docs/expression_metric_vis.devdocs.json +++ b/api_docs/expression_metric_vis.devdocs.json @@ -904,7 +904,7 @@ "CustomXDomain", " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined" + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined" ], "path": "src/plugins/chart_expressions/expression_metric/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_metric_vis.mdx b/api_docs/expression_metric_vis.mdx index 2a20d57c3b137..e664c51d4f29b 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-01-04 +date: 2024-01-25 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 04ecc8db49661..ef147b85f42ab 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-01-04 +date: 2024-01-25 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 b6b0ac67a9cb9..80243ffc9d2b2 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-01-04 +date: 2024-01-25 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 e5ab37d98ab79..80f74ef448e44 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-01-04 +date: 2024-01-25 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 a07ed74186ff5..9568d8872b3bf 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-01-04 +date: 2024-01-25 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 2aa729e87260e..5803b3052b115 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionTagcloud'] --- import expressionTagcloudObj from './expression_tagcloud.devdocs.json'; diff --git a/api_docs/expression_x_y.devdocs.json b/api_docs/expression_x_y.devdocs.json index a1289bd45ad5c..13af4d2e8b440 100644 --- a/api_docs/expression_x_y.devdocs.json +++ b/api_docs/expression_x_y.devdocs.json @@ -1978,7 +1978,7 @@ "CustomXDomain", " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined" + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", "deprecated": false, @@ -2264,7 +2264,7 @@ "label": "AvailableReferenceLineIcon", "description": [], "signature": [ - "\"alert\" | \"tag\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"empty\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"circle\" | \"triangle\"" + "\"alert\" | \"circle\" | \"tag\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"empty\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"triangle\"" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_functions.ts", "deprecated": false, diff --git a/api_docs/expression_x_y.mdx b/api_docs/expression_x_y.mdx index 0b10fe16fe0f6..47d76f675c844 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressionXY'] --- import expressionXYObj from './expression_x_y.devdocs.json'; diff --git a/api_docs/expressions.devdocs.json b/api_docs/expressions.devdocs.json index 93beda5bfdfba..cee623925a105 100644 --- a/api_docs/expressions.devdocs.json +++ b/api_docs/expressions.devdocs.json @@ -3794,7 +3794,7 @@ "id": "def-public.ExpressionRenderHandler.Unnamed.$2", "type": "Object", "tags": [], - "label": "{\n onRenderError,\n renderMode,\n syncColors,\n syncTooltips,\n syncCursor,\n interactive,\n hasCompatibleActions = async () => false,\n getCompatibleCellValueActions = async () => [],\n executionContext,\n }", + "label": "{\n onRenderError,\n renderMode,\n syncColors,\n syncTooltips,\n syncCursor,\n shouldUseSizeTransitionVeil,\n interactive,\n hasCompatibleActions = async () => false,\n getCompatibleCellValueActions = async () => [],\n executionContext,\n }", "description": [], "signature": [ "ExpressionRenderHandlerParams" @@ -6079,7 +6079,8 @@ "section": "def-common.TablesAdapter", "text": "TablesAdapter" }, - " extends EventEmitter" + " extends ", + "events" ], "path": "src/plugins/expressions/common/util/tables_adapter.ts", "deprecated": false, @@ -7261,6 +7262,24 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "expressions", + "id": "def-public.ExecutionContext.shouldUseSizeTransitionVeil", + "type": "Function", + "tags": [], + "label": "shouldUseSizeTransitionVeil", + "description": [ + "\nReturns whether or not to use the size transition veil when resizing visualizations." + ], + "signature": [ + "(() => boolean) | undefined" + ], + "path": "src/plugins/expressions/common/execution/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "expressions", "id": "def-public.ExecutionContext.getExecutionContext", @@ -10880,6 +10899,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "expressions", + "id": "def-public.IExpressionLoaderParams.shouldUseSizeTransitionVeil", + "type": "CompoundType", + "tags": [], + "label": "shouldUseSizeTransitionVeil", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/expressions/public/types/index.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "expressions", "id": "def-public.IExpressionLoaderParams.hasCompatibleActions", @@ -11311,6 +11344,22 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "expressions", + "id": "def-public.IInterpreterRenderHandlers.shouldUseSizeTransitionVeil", + "type": "Function", + "tags": [], + "label": "shouldUseSizeTransitionVeil", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "src/plugins/expressions/common/expression_renderers/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "expressions", "id": "def-public.IInterpreterRenderHandlers.uiState", @@ -18648,6 +18697,24 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "expressions", + "id": "def-server.ExecutionContext.shouldUseSizeTransitionVeil", + "type": "Function", + "tags": [], + "label": "shouldUseSizeTransitionVeil", + "description": [ + "\nReturns whether or not to use the size transition veil when resizing visualizations." + ], + "signature": [ + "(() => boolean) | undefined" + ], + "path": "src/plugins/expressions/common/execution/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "expressions", "id": "def-server.ExecutionContext.getExecutionContext", @@ -21335,6 +21402,22 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "expressions", + "id": "def-server.IInterpreterRenderHandlers.shouldUseSizeTransitionVeil", + "type": "Function", + "tags": [], + "label": "shouldUseSizeTransitionVeil", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "src/plugins/expressions/common/expression_renderers/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "expressions", "id": "def-server.IInterpreterRenderHandlers.uiState", @@ -25986,7 +26069,8 @@ "section": "def-common.ExpressionsInspectorAdapter", "text": "ExpressionsInspectorAdapter" }, - " extends EventEmitter" + " extends ", + "events" ], "path": "src/plugins/expressions/common/util/expressions_inspector_adapter.ts", "deprecated": false, @@ -27989,7 +28073,8 @@ "section": "def-common.TablesAdapter", "text": "TablesAdapter" }, - " extends EventEmitter" + " extends ", + "events" ], "path": "src/plugins/expressions/common/util/tables_adapter.ts", "deprecated": false, @@ -30687,6 +30772,24 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "expressions", + "id": "def-common.ExecutionContext.shouldUseSizeTransitionVeil", + "type": "Function", + "tags": [], + "label": "shouldUseSizeTransitionVeil", + "description": [ + "\nReturns whether or not to use the size transition veil when resizing visualizations." + ], + "signature": [ + "(() => boolean) | undefined" + ], + "path": "src/plugins/expressions/common/execution/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "expressions", "id": "def-common.ExecutionContext.getExecutionContext", @@ -32341,6 +32444,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "expressions", + "id": "def-common.ExpressionExecutionParams.shouldUseSizeTransitionVeil", + "type": "CompoundType", + "tags": [], + "label": "shouldUseSizeTransitionVeil", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "src/plugins/expressions/common/service/expressions_services.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "expressions", "id": "def-common.ExpressionExecutionParams.inspectorAdapters", @@ -35599,6 +35716,22 @@ "children": [], "returnComment": [] }, + { + "parentPluginId": "expressions", + "id": "def-common.IInterpreterRenderHandlers.shouldUseSizeTransitionVeil", + "type": "Function", + "tags": [], + "label": "shouldUseSizeTransitionVeil", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "src/plugins/expressions/common/expression_renderers/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "expressions", "id": "def-common.IInterpreterRenderHandlers.uiState", @@ -37524,7 +37657,23 @@ "section": "def-common.ExpressionFunctionDefinition", "text": "ExpressionFunctionDefinition" }, - " ? { name: Name; input: Input; arguments: Arguments; output: Output; context: Context; } : never" + ", infer Output, infer Context extends ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ExecutionContext", + "text": "ExecutionContext" + }, + "<", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Adapters", + "text": "Adapters" + }, + ">> ? { name: Name; input: Input; arguments: Arguments; output: Output; context: Context; } : never" ], "path": "src/plugins/expressions/common/ast/build_function.ts", "deprecated": false, @@ -37816,7 +37965,7 @@ "\nMode of the expression render environment.\nThis value can be set from a consumer embedding an expression renderer and is accessible\nfrom within the active render function as part of the handlers.\nThe following modes are supported:\n* view (default): The chart is rendered in a container with the main purpose of viewing the chart (e.g. in a container like dashboard or canvas)\n* preview: The chart is rendered in very restricted space (below 100px width and height) and should only show a rough outline\n* edit: The chart is rendered within an editor and configuration elements within the chart should be displayed" ], "signature": [ - "\"edit\" | \"view\" | \"preview\"" + "\"view\" | \"edit\" | \"preview\"" ], "path": "src/plugins/expressions/common/expression_renderers/types.ts", "deprecated": false, diff --git a/api_docs/expressions.mdx b/api_docs/expressions.mdx index b65dc56d93d76..ddc4aa2c88838 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'expressions'] --- import expressionsObj from './expressions.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 | |-------------------|-----------|------------------------|-----------------| -| 2211 | 17 | 1752 | 5 | +| 2219 | 17 | 1757 | 5 | ## Client diff --git a/api_docs/features.mdx b/api_docs/features.mdx index 9dd6158563493..d0ee9e756eccc 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-01-04 +date: 2024-01-25 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 04e8add44042c..be59bc24a7e6d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'fieldFormats'] --- import fieldFormatsObj from './field_formats.devdocs.json'; diff --git a/api_docs/file_upload.devdocs.json b/api_docs/file_upload.devdocs.json index 5f45445c8f0f1..39fc5b715bc88 100644 --- a/api_docs/file_upload.devdocs.json +++ b/api_docs/file_upload.devdocs.json @@ -277,6 +277,292 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter", + "type": "Interface", + "tags": [], + "label": "IImporter", + "description": [], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.read", + "type": "Function", + "tags": [], + "label": "read", + "description": [], + "signature": [ + "(data: ArrayBuffer) => { success: boolean; }" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.read.$1", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "ArrayBuffer" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.initializeImport", + "type": "Function", + "tags": [], + "label": "initializeImport", + "description": [], + "signature": [ + "(index: string, settings: ", + "IndicesIndexSettings", + ", mappings: ", + "MappingTypeMapping", + ", pipeline: ", + { + "pluginId": "fileUpload", + "scope": "common", + "docId": "kibFileUploadPluginApi", + "section": "def-common.IngestPipeline", + "text": "IngestPipeline" + }, + ") => Promise<", + "ImportResponse", + ">" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.initializeImport.$1", + "type": "string", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.initializeImport.$2", + "type": "CompoundType", + "tags": [], + "label": "settings", + "description": [], + "signature": [ + "IndicesIndexSettings" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.initializeImport.$3", + "type": "Object", + "tags": [], + "label": "mappings", + "description": [], + "signature": [ + "MappingTypeMapping" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.initializeImport.$4", + "type": "Object", + "tags": [], + "label": "pipeline", + "description": [], + "signature": [ + { + "pluginId": "fileUpload", + "scope": "common", + "docId": "kibFileUploadPluginApi", + "section": "def-common.IngestPipeline", + "text": "IngestPipeline" + } + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.import", + "type": "Function", + "tags": [], + "label": "import", + "description": [], + "signature": [ + "(id: string, index: string, pipelineId: string | undefined, setImportProgress: (progress: number) => void) => Promise<", + "ImportResults", + ">" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.import.$1", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.import.$2", + "type": "string", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.import.$3", + "type": "string", + "tags": [], + "label": "pipelineId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.import.$4", + "type": "Function", + "tags": [], + "label": "setImportProgress", + "description": [], + "signature": [ + "(progress: number) => void" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.initialized", + "type": "Function", + "tags": [], + "label": "initialized", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.getIndex", + "type": "Function", + "tags": [], + "label": "getIndex", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.getTimeField", + "type": "Function", + "tags": [], + "label": "getTimeField", + "description": [], + "signature": [ + "() => string | undefined" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "fileUpload", + "id": "def-public.IImporter.previewIndexTimeRange", + "type": "Function", + "tags": [], + "label": "previewIndexTimeRange", + "description": [], + "signature": [ + "() => Promise<{ start: number | null; end: number | null; }>" + ], + "path": "x-pack/plugins/file_upload/public/importer/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "fileUpload", "id": "def-public.Props", diff --git a/api_docs/file_upload.mdx b/api_docs/file_upload.mdx index 4c98ec2a3d91b..d853465265193 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 59 | 0 | 59 | 2 | +| 76 | 0 | 76 | 4 | ## Client diff --git a/api_docs/files.mdx b/api_docs/files.mdx index 492b70d6729b6..ddb4b8b34876c 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-01-04 +date: 2024-01-25 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 34f47024dfd71..71216f33f20ed 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-01-04 +date: 2024-01-25 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 fc7721c76091e..1e63df687cbe1 100644 --- a/api_docs/fleet.devdocs.json +++ b/api_docs/fleet.devdocs.json @@ -892,6 +892,9 @@ "tags": [], "label": "namespace", "description": [], + "signature": [ + "string | undefined" + ], "path": "x-pack/plugins/fleet/common/types/models/package_policy.ts", "deprecated": false, "trackAdoption": false @@ -17615,7 +17618,7 @@ "label": "isValidNamespace", "description": [], "signature": [ - "(namespace: string) => { valid: boolean; error?: string | undefined; }" + "(namespace: string, allowBlankNamespace: boolean | undefined) => { valid: boolean; error?: string | undefined; }" ], "path": "x-pack/plugins/fleet/common/services/is_valid_namespace.ts", "deprecated": false, @@ -17635,6 +17638,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "fleet", + "id": "def-common.isValidNamespace.$2", + "type": "CompoundType", + "tags": [], + "label": "allowBlankNamespace", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "x-pack/plugins/fleet/common/services/is_valid_namespace.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [], @@ -21430,6 +21448,9 @@ "tags": [], "label": "namespace", "description": [], + "signature": [ + "string | undefined" + ], "path": "x-pack/plugins/fleet/common/types/models/package_policy.ts", "deprecated": false, "trackAdoption": false @@ -25564,7 +25585,7 @@ "label": "RegistrySearchResult", "description": [], "signature": [ - "{ type?: \"input\" | \"integration\" | undefined; name: string; description: string; title: string; version: string; path: string; download: string; internal?: boolean | undefined; icons?: (", + "{ type?: \"input\" | \"integration\" | undefined; name: string; title: string; path: string; description: string; version: string; download: string; internal?: boolean | undefined; icons?: (", { "pluginId": "fleet", "scope": "common", diff --git a/api_docs/fleet.mdx b/api_docs/fleet.mdx index 71082e7d6c850..647131948546b 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 1221 | 3 | 1103 | 48 | +| 1222 | 3 | 1104 | 48 | ## Client diff --git a/api_docs/global_search.mdx b/api_docs/global_search.mdx index f145084416fb0..87864c052c324 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-01-04 +date: 2024-01-25 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 69906278ddaf4..c2190ce16c07e 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'guidedOnboarding'] --- import guidedOnboardingObj from './guided_onboarding.devdocs.json'; diff --git a/api_docs/home.devdocs.json b/api_docs/home.devdocs.json index 964cceb399baa..7e618e5389d23 100644 --- a/api_docs/home.devdocs.json +++ b/api_docs/home.devdocs.json @@ -1839,7 +1839,7 @@ "label": "ArtifactsSchema", "description": [], "signature": [ - "{ readonly application?: Readonly<{} & { path: string; label: string; }> | undefined; readonly exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; readonly dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }" + "{ readonly application?: Readonly<{} & { label: string; path: string; }> | undefined; readonly exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; readonly dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, @@ -2013,7 +2013,7 @@ "section": "def-server.TutorialContext", "text": "TutorialContext" }, - ") => Readonly<{ savedObjects?: any[] | undefined; euiIconType?: string | undefined; isBeta?: boolean | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjectsInstallMsg?: string | undefined; customStatusCheckName?: string | undefined; integrationBrowserCategories?: string[] | undefined; eprPackageOverlap?: string | undefined; } & { id: string; name: string; category: \"security\" | \"metrics\" | \"other\" | \"logging\"; shortDescription: string; longDescription: string; onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }>" + ") => Readonly<{ savedObjects?: any[] | undefined; euiIconType?: string | undefined; isBeta?: boolean | undefined; previewImagePath?: string | undefined; moduleName?: string | undefined; completionTimeMinutes?: number | undefined; elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; artifacts?: Readonly<{ application?: Readonly<{} & { label: string; path: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; savedObjectsInstallMsg?: string | undefined; customStatusCheckName?: string | undefined; integrationBrowserCategories?: string[] | undefined; eprPackageOverlap?: string | undefined; } & { id: string; name: string; category: \"security\" | \"metrics\" | \"other\" | \"logging\"; shortDescription: string; longDescription: string; onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }>" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorials_registry_types.ts", "deprecated": false, @@ -2051,7 +2051,7 @@ "label": "TutorialSchema", "description": [], "signature": [ - "{ readonly savedObjects?: any[] | undefined; readonly euiIconType?: string | undefined; readonly isBeta?: boolean | undefined; readonly previewImagePath?: string | undefined; readonly moduleName?: string | undefined; readonly completionTimeMinutes?: number | undefined; readonly elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly artifacts?: Readonly<{ application?: Readonly<{} & { path: string; label: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; readonly savedObjectsInstallMsg?: string | undefined; readonly customStatusCheckName?: string | undefined; readonly integrationBrowserCategories?: string[] | undefined; readonly eprPackageOverlap?: string | undefined; readonly id: string; readonly name: string; readonly category: \"security\" | \"metrics\" | \"other\" | \"logging\"; readonly shortDescription: string; readonly longDescription: string; readonly onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }" + "{ readonly savedObjects?: any[] | undefined; readonly euiIconType?: string | undefined; readonly isBeta?: boolean | undefined; readonly previewImagePath?: string | undefined; readonly moduleName?: string | undefined; readonly completionTimeMinutes?: number | undefined; readonly elasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly onPremElasticCloud?: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }> | undefined; readonly artifacts?: Readonly<{ application?: Readonly<{} & { label: string; path: string; }> | undefined; exportedFields?: Readonly<{} & { documentationUrl: string; }> | undefined; } & { dashboards: Readonly<{ linkLabel?: string | undefined; } & { id: string; isOverview: boolean; }>[]; }> | undefined; readonly savedObjectsInstallMsg?: string | undefined; readonly customStatusCheckName?: string | undefined; readonly integrationBrowserCategories?: string[] | undefined; readonly eprPackageOverlap?: string | undefined; readonly id: string; readonly name: string; readonly category: \"security\" | \"metrics\" | \"other\" | \"logging\"; readonly shortDescription: string; readonly longDescription: string; readonly onPrem: Readonly<{ params?: Readonly<{ defaultValue?: any; } & { type: \"string\" | \"number\"; id: string; label: string; }>[] | undefined; } & { instructionSets: Readonly<{ title?: string | undefined; callOut?: Readonly<{ message?: string | undefined; iconType?: string | undefined; } & { title: string; }> | undefined; statusCheck?: Readonly<{ error?: string | undefined; text?: string | undefined; title?: string | undefined; success?: string | undefined; btnLabel?: string | undefined; } & { esHitsCheck: Readonly<{} & { index: string | string[]; query: Record; }>; }> | undefined; } & { instructionVariants: Readonly<{ initialSelected?: boolean | undefined; } & { id: string; instructions: Readonly<{ title?: string | undefined; textPre?: string | undefined; commands?: string[] | undefined; textPost?: string | undefined; customComponentName?: string | undefined; } & {}>[]; }>[]; }>[]; }>; }" ], "path": "src/plugins/home/server/services/tutorials/lib/tutorial_schema.ts", "deprecated": false, diff --git a/api_docs/home.mdx b/api_docs/home.mdx index 24aa7c9926bda..3e4b6688c7fb7 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-01-04 +date: 2024-01-25 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 f0e8319806226..f8e425b1227e8 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-01-04 +date: 2024-01-25 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 e180f0d1641dc..f2e2b3be03b67 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-01-04 +date: 2024-01-25 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 f3af751475dc7..54c259862cbf5 100644 --- a/api_docs/index_management.devdocs.json +++ b/api_docs/index_management.devdocs.json @@ -3256,7 +3256,7 @@ "label": "TemplateType", "description": [], "signature": [ - "\"managed\" | \"default\" | \"system\" | \"cloudManaged\"" + "\"default\" | \"managed\" | \"system\" | \"cloudManaged\"" ], "path": "x-pack/plugins/index_management/common/types/templates.ts", "deprecated": false, diff --git a/api_docs/index_management.mdx b/api_docs/index_management.mdx index 5d41b96d012ee..0a49bdcac74a3 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'indexManagement'] --- import indexManagementObj from './index_management.devdocs.json'; diff --git a/api_docs/infra.mdx b/api_docs/infra.mdx index f5c39b03aca7f..d0c8633ae3729 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'infra'] --- import infraObj from './infra.devdocs.json'; diff --git a/api_docs/ingest_pipelines.mdx b/api_docs/ingest_pipelines.mdx index 6e9aff3bfba06..65bc9969ac858 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ingestPipelines'] --- import ingestPipelinesObj from './ingest_pipelines.devdocs.json'; diff --git a/api_docs/inspector.devdocs.json b/api_docs/inspector.devdocs.json index db6ceeae34643..6ba247d778144 100644 --- a/api_docs/inspector.devdocs.json +++ b/api_docs/inspector.devdocs.json @@ -291,7 +291,8 @@ "section": "def-common.RequestAdapter", "text": "RequestAdapter" }, - " extends EventEmitter" + " extends ", + "events" ], "path": "src/plugins/inspector/common/adapters/request/request_adapter.ts", "deprecated": false, @@ -764,7 +765,48 @@ "initialIsOpen": false } ], - "functions": [], + "functions": [ + { + "parentPluginId": "inspector", + "id": "def-public.apiHasInspectorAdapters", + "type": "Function", + "tags": [], + "label": "apiHasInspectorAdapters", + "description": [], + "signature": [ + "(api: unknown) => api is ", + { + "pluginId": "inspector", + "scope": "public", + "docId": "kibInspectorPluginApi", + "section": "def-public.HasInspectorAdapters", + "text": "HasInspectorAdapters" + } + ], + "path": "src/plugins/inspector/public/adapters/has_inspector_adapters.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "inspector", + "id": "def-public.apiHasInspectorAdapters.$1", + "type": "Unknown", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "unknown" + ], + "path": "src/plugins/inspector/public/adapters/has_inspector_adapters.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], "interfaces": [ { "parentPluginId": "inspector", @@ -817,6 +859,44 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "inspector", + "id": "def-public.HasInspectorAdapters", + "type": "Interface", + "tags": [], + "label": "HasInspectorAdapters", + "description": [], + "path": "src/plugins/inspector/public/adapters/has_inspector_adapters.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "inspector", + "id": "def-public.HasInspectorAdapters.getInspectorAdapters", + "type": "Function", + "tags": [], + "label": "getInspectorAdapters", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "inspector", + "scope": "common", + "docId": "kibInspectorPluginApi", + "section": "def-common.Adapters", + "text": "Adapters" + }, + " | undefined" + ], + "path": "src/plugins/inspector/public/adapters/has_inspector_adapters.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "inspector", "id": "def-public.InspectorOptions", @@ -1623,7 +1703,8 @@ "section": "def-common.RequestAdapter", "text": "RequestAdapter" }, - " extends EventEmitter" + " extends ", + "events" ], "path": "src/plugins/inspector/common/adapters/request/request_adapter.ts", "deprecated": false, diff --git a/api_docs/inspector.mdx b/api_docs/inspector.mdx index 03c65d44f35e7..a679684973090 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'inspector'] --- import inspectorObj from './inspector.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 | |-------------------|-----------|------------------------|-----------------| -| 123 | 2 | 96 | 4 | +| 127 | 2 | 100 | 4 | ## Client @@ -31,6 +31,9 @@ Contact [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kib ### Start +### Functions + + ### Classes diff --git a/api_docs/interactive_setup.mdx b/api_docs/interactive_setup.mdx index 0086ac4ce9e8e..729e2c3b52bb4 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'interactiveSetup'] --- import interactiveSetupObj from './interactive_setup.devdocs.json'; diff --git a/api_docs/kbn_ace.mdx b/api_docs/kbn_ace.mdx index be92db311d961..7f787d8b7ac6f 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-01-04 +date: 2024-01-25 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 ea6042678334b..5c5bd5a8000cb 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-01-04 +date: 2024-01-25 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 0fceae2c6aa5b..d852cf568224d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-components'] --- import kbnAiopsComponentsObj from './kbn_aiops_components.devdocs.json'; diff --git a/api_docs/kbn_aiops_utils.mdx b/api_docs/kbn_aiops_utils.mdx index 0c572f58a1412..6640b0ecb1a58 100644 --- a/api_docs/kbn_aiops_utils.mdx +++ b/api_docs/kbn_aiops_utils.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-aiops-utils title: "@kbn/aiops-utils" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/aiops-utils plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/aiops-utils'] --- import kbnAiopsUtilsObj from './kbn_aiops_utils.devdocs.json'; diff --git a/api_docs/kbn_alerting_api_integration_helpers.mdx b/api_docs/kbn_alerting_api_integration_helpers.mdx index 48cae6747c964..5ff65c2c1196f 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerting-api-integration-helpers'] --- import kbnAlertingApiIntegrationHelpersObj from './kbn_alerting_api_integration_helpers.devdocs.json'; diff --git a/api_docs/kbn_alerting_state_types.devdocs.json b/api_docs/kbn_alerting_state_types.devdocs.json index df8c83dfdc58a..344736f793222 100644 --- a/api_docs/kbn_alerting_state_types.devdocs.json +++ b/api_docs/kbn_alerting_state_types.devdocs.json @@ -120,7 +120,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 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; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -165,7 +165,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; } & {}> | undefined; readonly state?: Record | undefined; }" + "{ 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; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -180,7 +180,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; } & {}> | 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; } & {}> | 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; 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; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -210,7 +210,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; }" + "{ uuid?: Mutable; lastScheduledActions?: Mutable> | undefined; subgroup?: string | undefined; } & { date: string; group: string; }> | undefined>; flappingHistory?: Mutable; flapping?: Mutable; maintenanceWindowIds?: Mutable; pendingRecoveredCount?: Mutable; activeCount?: Mutable; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -225,7 +225,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; } & {}> | 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; } & {}> | 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; 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>; }" ], "path": "x-pack/packages/kbn-alerting-state-types/src/task_state/index.ts", "deprecated": false, @@ -400,7 +400,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; } & {}> | 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; } & {}> | 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; 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: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -424,7 +424,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; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; alertRecoveredInstances: ", + "> | 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: ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -432,7 +432,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; } & {}> | undefined; state?: Record | undefined; } & {}>> | undefined>; previousStartedAt: ", + "> | 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: ", { "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 7109d9c5de8c6..85d0200671b09 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-01-04 +date: 2024-01-25 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 ab5cfabbd6694..1c7e6322dfefe 100644 --- a/api_docs/kbn_alerting_types.devdocs.json +++ b/api_docs/kbn_alerting_types.devdocs.json @@ -147,6 +147,42 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.BasicFields", + "type": "Interface", + "tags": [], + "label": "BasicFields", + "description": [], + "path": "packages/kbn-alerting-types/alert_type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.BasicFields._id", + "type": "string", + "tags": [], + "label": "_id", + "description": [], + "path": "packages/kbn-alerting-types/alert_type.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.BasicFields._index", + "type": "string", + "tags": [], + "label": "_index", + "description": [], + "path": "packages/kbn-alerting-types/alert_type.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerting-types", "id": "def-common.RuleType", @@ -420,7 +456,7 @@ "section": "def-common.ActionGroup", "text": "ActionGroup" }, - " ? groups : T extends Readonly<", + " ? groups : T extends Readonly<", { "pluginId": "@kbn/alerting-types", "scope": "common", @@ -428,13 +464,35 @@ "section": "def-common.ActionGroup", "text": "ActionGroup" }, - "> ? groups : never" + "> ? groups : never" ], "path": "packages/kbn-alerting-types/rule_type.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/alerting-types", + "id": "def-common.Alert", + "type": "Type", + "tags": [], + "label": "Alert", + "description": [], + "signature": [ + { + "pluginId": "@kbn/alerting-types", + "scope": "common", + "docId": "kibKbnAlertingTypesPluginApi", + "section": "def-common.BasicFields", + "text": "BasicFields" + }, + " & { \"@timestamp\"?: string[] | undefined; \"event.action\"?: string[] | undefined; tags?: string[] | undefined; kibana?: string[] | undefined; \"kibana.alert.rule.rule_type_id\"?: string[] | undefined; \"kibana.alert.rule.consumer\"?: string[] | undefined; \"kibana.alert.rule.execution.uuid\"?: string[] | undefined; \"kibana.alert.instance.id\"?: string[] | undefined; \"kibana.alert.rule.category\"?: string[] | undefined; \"kibana.alert.rule.name\"?: string[] | undefined; \"kibana.alert.rule.producer\"?: string[] | undefined; \"kibana.alert.rule.uuid\"?: string[] | undefined; \"kibana.alert.status\"?: string[] | undefined; \"kibana.alert.uuid\"?: string[] | undefined; \"kibana.space_ids\"?: string[] | undefined; \"event.kind\"?: string[] | undefined; \"kibana.alert.action_group\"?: string[] | undefined; \"kibana.alert.case_ids\"?: string[] | undefined; \"kibana.alert.duration.us\"?: string[] | undefined; \"kibana.alert.end\"?: string[] | undefined; \"kibana.alert.flapping\"?: string[] | undefined; \"kibana.alert.maintenance_window_ids\"?: string[] | undefined; \"kibana.alert.reason\"?: string[] | undefined; \"kibana.alert.rule.parameters\"?: string[] | undefined; \"kibana.alert.rule.tags\"?: string[] | undefined; \"kibana.alert.start\"?: string[] | undefined; \"kibana.alert.time_range\"?: string[] | undefined; \"kibana.alert.workflow_assignee_ids\"?: string[] | undefined; \"kibana.alert.workflow_status\"?: string[] | undefined; \"kibana.alert.workflow_tags\"?: string[] | undefined; \"kibana.version\"?: string[] | undefined; \"kibana.alert.context\"?: string[] | undefined; \"kibana.alert.evaluation.threshold\"?: string[] | undefined; \"kibana.alert.evaluation.value\"?: string[] | undefined; \"kibana.alert.evaluation.values\"?: string[] | undefined; \"kibana.alert.group\"?: string[] | undefined; \"ecs.version\"?: string[] | undefined; \"kibana.alert.risk_score\"?: string[] | undefined; \"kibana.alert.rule.author\"?: string[] | undefined; \"kibana.alert.rule.created_at\"?: string[] | undefined; \"kibana.alert.rule.created_by\"?: string[] | undefined; \"kibana.alert.rule.description\"?: string[] | undefined; \"kibana.alert.rule.enabled\"?: string[] | undefined; \"kibana.alert.rule.from\"?: string[] | undefined; \"kibana.alert.rule.interval\"?: string[] | undefined; \"kibana.alert.rule.license\"?: string[] | undefined; \"kibana.alert.rule.note\"?: string[] | undefined; \"kibana.alert.rule.references\"?: string[] | undefined; \"kibana.alert.rule.rule_id\"?: string[] | undefined; \"kibana.alert.rule.rule_name_override\"?: string[] | undefined; \"kibana.alert.rule.to\"?: string[] | undefined; \"kibana.alert.rule.type\"?: string[] | undefined; \"kibana.alert.rule.updated_at\"?: string[] | undefined; \"kibana.alert.rule.updated_by\"?: string[] | undefined; \"kibana.alert.rule.version\"?: string[] | undefined; \"kibana.alert.severity\"?: string[] | undefined; \"kibana.alert.suppression.docs_count\"?: string[] | undefined; \"kibana.alert.suppression.end\"?: string[] | undefined; \"kibana.alert.suppression.start\"?: string[] | undefined; \"kibana.alert.suppression.terms.field\"?: string[] | undefined; \"kibana.alert.suppression.terms.value\"?: string[] | undefined; \"kibana.alert.system_status\"?: string[] | undefined; \"kibana.alert.workflow_reason\"?: string[] | undefined; \"kibana.alert.workflow_user\"?: string[] | undefined; \"event.module\"?: string[] | undefined; \"kibana.alert.rule.threat.framework\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.id\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.name\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.reference\"?: string[] | undefined; \"kibana.alert.building_block_type\"?: string[] | undefined; \"kibana.alert\"?: string[] | undefined; \"kibana.alert.group.field\"?: string[] | undefined; \"kibana.alert.group.value\"?: string[] | undefined; \"kibana.alert.rule\"?: string[] | undefined; \"kibana.alert.rule.exceptions_list\"?: string[] | undefined; \"kibana.alert.rule.namespace\"?: string[] | undefined; \"kibana.alert.suppression.terms\"?: string[] | undefined; } & { [x: string]: unknown[]; }" + ], + "path": "packages/kbn-alerting-types/alert_type.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerting-types", "id": "def-common.DefaultActionGroupId", diff --git a/api_docs/kbn_alerting_types.mdx b/api_docs/kbn_alerting_types.mdx index 81baf5ce3dea1..4cf4723694ebd 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 29 | 0 | 29 | 0 | +| 33 | 0 | 33 | 0 | ## Common diff --git a/api_docs/kbn_alerts_as_data_utils.devdocs.json b/api_docs/kbn_alerts_as_data_utils.devdocs.json index 5f26f2569b2f5..ea7bb8bc0111d 100644 --- a/api_docs/kbn_alerts_as_data_utils.devdocs.json +++ b/api_docs/kbn_alerts_as_data_utils.devdocs.json @@ -196,7 +196,7 @@ "label": "AADAlert", "description": [], "signature": [ - "({ '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; }) | ({} & { 'agent.name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'error.grouping_name'?: string | undefined; 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; labels?: unknown; 'processor.event'?: string | undefined; 'service.environment'?: string | undefined; 'service.language.name'?: string | undefined; 'service.name'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'slo.id'?: string | undefined; 'slo.instanceId'?: string | undefined; 'slo.revision'?: string | number | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'agent.name'?: string | undefined; 'anomaly.bucket_span.minutes'?: string | undefined; 'anomaly.start'?: string | number | undefined; 'error.message'?: string | undefined; 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'monitor.id'?: string | undefined; 'monitor.name'?: string | undefined; 'monitor.type'?: string | undefined; 'observer.geo.name'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.x509.issuer.common_name'?: string | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.subject.common_name'?: string | undefined; 'url.full'?: string | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({ '@timestamp': string | number; 'kibana.alert.ancestors': { depth: string | number; id: string; index: string; type: string; }[]; 'kibana.alert.depth': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.original_event.action': string; 'kibana.alert.original_event.category': string[]; 'kibana.alert.original_event.created': string | number; 'kibana.alert.original_event.dataset': string; 'kibana.alert.original_event.id': string; 'kibana.alert.original_event.ingested': string | number; 'kibana.alert.original_event.kind': string; 'kibana.alert.original_event.module': string; 'kibana.alert.original_event.original': string; 'kibana.alert.original_event.outcome': string; 'kibana.alert.original_event.provider': string; 'kibana.alert.original_event.sequence': string | number; 'kibana.alert.original_event.type': string[]; 'kibana.alert.original_time': string | number; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.false_positives': string[]; 'kibana.alert.rule.max_signals': (string | number)[]; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.threat.framework': string; 'kibana.alert.rule.threat.tactic.id': string; 'kibana.alert.rule.threat.tactic.name': string; 'kibana.alert.rule.threat.tactic.reference': string; 'kibana.alert.rule.threat.technique.id': string; 'kibana.alert.rule.threat.technique.name': string; 'kibana.alert.rule.threat.technique.reference': string; 'kibana.alert.rule.threat.technique.subtechnique.id': string; 'kibana.alert.rule.threat.technique.subtechnique.name': string; 'kibana.alert.rule.threat.technique.subtechnique.reference': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'ecs.version'?: string | undefined; 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.ancestors.rule'?: string | undefined; 'kibana.alert.building_block_type'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.group.id'?: string | undefined; 'kibana.alert.group.index'?: number | undefined; 'kibana.alert.host.criticality_level'?: string | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.new_terms'?: string[] | undefined; 'kibana.alert.original_event.agent_id_status'?: string | undefined; 'kibana.alert.original_event.code'?: string | undefined; 'kibana.alert.original_event.duration'?: string | undefined; 'kibana.alert.original_event.end'?: string | number | undefined; 'kibana.alert.original_event.hash'?: string | undefined; 'kibana.alert.original_event.reason'?: string | undefined; 'kibana.alert.original_event.reference'?: string | undefined; 'kibana.alert.original_event.risk_score'?: number | undefined; 'kibana.alert.original_event.risk_score_norm'?: number | undefined; 'kibana.alert.original_event.severity'?: string | number | undefined; 'kibana.alert.original_event.start'?: string | number | undefined; 'kibana.alert.original_event.timezone'?: string | undefined; 'kibana.alert.original_event.url'?: string | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.building_block_type'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.immutable'?: string[] | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.rule.timeline_id'?: string[] | undefined; 'kibana.alert.rule.timeline_title'?: string[] | undefined; 'kibana.alert.rule.timestamp_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.threshold_result.cardinality'?: unknown; 'kibana.alert.threshold_result.count'?: string | number | undefined; 'kibana.alert.threshold_result.from'?: string | number | undefined; 'kibana.alert.threshold_result.terms'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.user.criticality_level'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.alert.workflow_user'?: string | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({ 'kibana.alert.job_id': string; } & { 'kibana.alert.anomaly_score'?: number | undefined; 'kibana.alert.anomaly_timestamp'?: string | number | undefined; 'kibana.alert.is_interim'?: boolean | undefined; 'kibana.alert.top_influencers'?: { influencer_field_name?: string | undefined; influencer_field_value?: string | undefined; influencer_score?: number | undefined; initial_influencer_score?: number | undefined; is_interim?: boolean | undefined; job_id?: string | undefined; timestamp?: string | number | undefined; }[] | undefined; 'kibana.alert.top_records'?: { actual?: number | undefined; by_field_name?: string | undefined; by_field_value?: string | undefined; detector_index?: number | undefined; field_name?: string | undefined; function?: string | undefined; initial_record_score?: number | undefined; is_interim?: boolean | undefined; job_id?: string | undefined; over_field_name?: string | undefined; over_field_value?: string | undefined; partition_field_name?: string | undefined; partition_field_value?: string | undefined; record_score?: number | undefined; timestamp?: string | number | undefined; typical?: number | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; })" + "({ '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; }) | ({} & {} & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; }) | ({} & { 'agent.name'?: string | undefined; 'error.grouping_key'?: string | undefined; 'error.grouping_name'?: string | undefined; 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; labels?: unknown; 'processor.event'?: string | undefined; 'service.environment'?: string | undefined; 'service.language.name'?: string | undefined; 'service.name'?: string | undefined; 'transaction.name'?: string | undefined; 'transaction.type'?: string | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'slo.id'?: string | undefined; 'slo.instanceId'?: string | undefined; 'slo.revision'?: string | number | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({} & { 'agent.name'?: string | undefined; 'anomaly.bucket_span.minutes'?: string | undefined; 'anomaly.start'?: string | number | undefined; 'error.message'?: string | undefined; 'kibana.alert.context'?: unknown; 'kibana.alert.evaluation.threshold'?: string | number | undefined; 'kibana.alert.evaluation.value'?: string | number | undefined; 'kibana.alert.evaluation.values'?: (string | number)[] | undefined; 'kibana.alert.group'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'monitor.id'?: string | undefined; 'monitor.name'?: string | undefined; 'monitor.type'?: string | undefined; 'observer.geo.name'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.x509.issuer.common_name'?: string | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.subject.common_name'?: string | undefined; 'url.full'?: string | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({ '@timestamp': string | number; 'kibana.alert.ancestors': { depth: string | number; id: string; index: string; type: string; }[]; 'kibana.alert.depth': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.original_event.action': string; 'kibana.alert.original_event.category': string[]; 'kibana.alert.original_event.created': string | number; 'kibana.alert.original_event.dataset': string; 'kibana.alert.original_event.id': string; 'kibana.alert.original_event.ingested': string | number; 'kibana.alert.original_event.kind': string; 'kibana.alert.original_event.module': string; 'kibana.alert.original_event.original': string; 'kibana.alert.original_event.outcome': string; 'kibana.alert.original_event.provider': string; 'kibana.alert.original_event.sequence': string | number; 'kibana.alert.original_event.type': string[]; 'kibana.alert.original_time': string | number; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.false_positives': string[]; 'kibana.alert.rule.max_signals': (string | number)[]; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.threat.framework': string; 'kibana.alert.rule.threat.tactic.id': string; 'kibana.alert.rule.threat.tactic.name': string; 'kibana.alert.rule.threat.tactic.reference': string; 'kibana.alert.rule.threat.technique.id': string; 'kibana.alert.rule.threat.technique.name': string; 'kibana.alert.rule.threat.technique.reference': string; 'kibana.alert.rule.threat.technique.subtechnique.id': string; 'kibana.alert.rule.threat.technique.subtechnique.name': string; 'kibana.alert.rule.threat.technique.subtechnique.reference': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'ecs.version'?: string | undefined; 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.ancestors.rule'?: string | undefined; 'kibana.alert.building_block_type'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.group.id'?: string | undefined; 'kibana.alert.group.index'?: number | undefined; 'kibana.alert.host.criticality_level'?: string | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.new_terms'?: string[] | undefined; 'kibana.alert.original_event.agent_id_status'?: string | undefined; 'kibana.alert.original_event.code'?: string | undefined; 'kibana.alert.original_event.duration'?: string | undefined; 'kibana.alert.original_event.end'?: string | number | undefined; 'kibana.alert.original_event.hash'?: string | undefined; 'kibana.alert.original_event.reason'?: string | undefined; 'kibana.alert.original_event.reference'?: string | undefined; 'kibana.alert.original_event.risk_score'?: number | undefined; 'kibana.alert.original_event.risk_score_norm'?: number | undefined; 'kibana.alert.original_event.severity'?: string | number | undefined; 'kibana.alert.original_event.start'?: string | number | undefined; 'kibana.alert.original_event.timezone'?: string | undefined; 'kibana.alert.original_event.url'?: string | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.building_block_type'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.immutable'?: string[] | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.rule.timeline_id'?: string[] | undefined; 'kibana.alert.rule.timeline_title'?: string[] | undefined; 'kibana.alert.rule.timestamp_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.threshold_result.cardinality'?: unknown; 'kibana.alert.threshold_result.count'?: string | number | undefined; 'kibana.alert.threshold_result.from'?: string | number | undefined; 'kibana.alert.threshold_result.terms'?: { field?: string | undefined; value?: string | undefined; }[] | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.user.criticality_level'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.alert.workflow_user'?: string | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; } & { '@timestamp': string | number; 'ecs.version': string; } & { 'agent.build.original'?: string | undefined; 'agent.ephemeral_id'?: string | undefined; 'agent.id'?: string | undefined; 'agent.name'?: string | undefined; 'agent.type'?: string | undefined; 'agent.version'?: string | undefined; 'client.address'?: string | undefined; 'client.as.number'?: string | number | undefined; 'client.as.organization.name'?: string | undefined; 'client.bytes'?: string | number | undefined; 'client.domain'?: string | undefined; 'client.geo.city_name'?: string | undefined; 'client.geo.continent_code'?: string | undefined; 'client.geo.continent_name'?: string | undefined; 'client.geo.country_iso_code'?: string | undefined; 'client.geo.country_name'?: string | undefined; 'client.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'client.geo.name'?: string | undefined; 'client.geo.postal_code'?: string | undefined; 'client.geo.region_iso_code'?: string | undefined; 'client.geo.region_name'?: string | undefined; 'client.geo.timezone'?: string | undefined; 'client.ip'?: string | undefined; 'client.mac'?: string | undefined; 'client.nat.ip'?: string | undefined; 'client.nat.port'?: string | number | undefined; 'client.packets'?: string | number | undefined; 'client.port'?: string | number | undefined; 'client.registered_domain'?: string | undefined; 'client.subdomain'?: string | undefined; 'client.top_level_domain'?: string | undefined; 'client.user.domain'?: string | undefined; 'client.user.email'?: string | undefined; 'client.user.full_name'?: string | undefined; 'client.user.group.domain'?: string | undefined; 'client.user.group.id'?: string | undefined; 'client.user.group.name'?: string | undefined; 'client.user.hash'?: string | undefined; 'client.user.id'?: string | undefined; 'client.user.name'?: string | undefined; 'client.user.roles'?: string[] | undefined; 'cloud.account.id'?: string | undefined; 'cloud.account.name'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.instance.id'?: string | undefined; 'cloud.instance.name'?: string | undefined; 'cloud.machine.type'?: string | undefined; 'cloud.origin.account.id'?: string | undefined; 'cloud.origin.account.name'?: string | undefined; 'cloud.origin.availability_zone'?: string | undefined; 'cloud.origin.instance.id'?: string | undefined; 'cloud.origin.instance.name'?: string | undefined; 'cloud.origin.machine.type'?: string | undefined; 'cloud.origin.project.id'?: string | undefined; 'cloud.origin.project.name'?: string | undefined; 'cloud.origin.provider'?: string | undefined; 'cloud.origin.region'?: string | undefined; 'cloud.origin.service.name'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.project.name'?: string | undefined; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.service.name'?: string | undefined; 'cloud.target.account.id'?: string | undefined; 'cloud.target.account.name'?: string | undefined; 'cloud.target.availability_zone'?: string | undefined; 'cloud.target.instance.id'?: string | undefined; 'cloud.target.instance.name'?: string | undefined; 'cloud.target.machine.type'?: string | undefined; 'cloud.target.project.id'?: string | undefined; 'cloud.target.project.name'?: string | undefined; 'cloud.target.provider'?: string | undefined; 'cloud.target.region'?: string | undefined; 'cloud.target.service.name'?: string | undefined; 'container.cpu.usage'?: string | number | undefined; 'container.disk.read.bytes'?: string | number | undefined; 'container.disk.write.bytes'?: string | number | undefined; 'container.id'?: string | undefined; 'container.image.hash.all'?: string[] | undefined; 'container.image.name'?: string | undefined; 'container.image.tag'?: string[] | undefined; 'container.labels'?: unknown; 'container.memory.usage'?: string | number | undefined; 'container.name'?: string | undefined; 'container.network.egress.bytes'?: string | number | undefined; 'container.network.ingress.bytes'?: string | number | undefined; 'container.runtime'?: string | undefined; 'destination.address'?: string | undefined; 'destination.as.number'?: string | number | undefined; 'destination.as.organization.name'?: string | undefined; 'destination.bytes'?: string | number | undefined; 'destination.domain'?: string | undefined; 'destination.geo.city_name'?: string | undefined; 'destination.geo.continent_code'?: string | undefined; 'destination.geo.continent_name'?: string | undefined; 'destination.geo.country_iso_code'?: string | undefined; 'destination.geo.country_name'?: string | undefined; 'destination.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'destination.geo.name'?: string | undefined; 'destination.geo.postal_code'?: string | undefined; 'destination.geo.region_iso_code'?: string | undefined; 'destination.geo.region_name'?: string | undefined; 'destination.geo.timezone'?: string | undefined; 'destination.ip'?: string | undefined; 'destination.mac'?: string | undefined; 'destination.nat.ip'?: string | undefined; 'destination.nat.port'?: string | number | undefined; 'destination.packets'?: string | number | undefined; 'destination.port'?: string | number | undefined; 'destination.registered_domain'?: string | undefined; 'destination.subdomain'?: string | undefined; 'destination.top_level_domain'?: string | undefined; 'destination.user.domain'?: string | undefined; 'destination.user.email'?: string | undefined; 'destination.user.full_name'?: string | undefined; 'destination.user.group.domain'?: string | undefined; 'destination.user.group.id'?: string | undefined; 'destination.user.group.name'?: string | undefined; 'destination.user.hash'?: string | undefined; 'destination.user.id'?: string | undefined; 'destination.user.name'?: string | undefined; 'destination.user.roles'?: string[] | undefined; 'device.id'?: string | undefined; 'device.manufacturer'?: string | undefined; 'device.model.identifier'?: string | undefined; 'device.model.name'?: string | undefined; 'dll.code_signature.digest_algorithm'?: string | undefined; 'dll.code_signature.exists'?: boolean | undefined; 'dll.code_signature.signing_id'?: string | undefined; 'dll.code_signature.status'?: string | undefined; 'dll.code_signature.subject_name'?: string | undefined; 'dll.code_signature.team_id'?: string | undefined; 'dll.code_signature.timestamp'?: string | number | undefined; 'dll.code_signature.trusted'?: boolean | undefined; 'dll.code_signature.valid'?: boolean | undefined; 'dll.hash.md5'?: string | undefined; 'dll.hash.sha1'?: string | undefined; 'dll.hash.sha256'?: string | undefined; 'dll.hash.sha384'?: string | undefined; 'dll.hash.sha512'?: string | undefined; 'dll.hash.ssdeep'?: string | undefined; 'dll.hash.tlsh'?: string | undefined; 'dll.name'?: string | undefined; 'dll.path'?: string | undefined; 'dll.pe.architecture'?: string | undefined; 'dll.pe.company'?: string | undefined; 'dll.pe.description'?: string | undefined; 'dll.pe.file_version'?: string | undefined; 'dll.pe.imphash'?: string | undefined; 'dll.pe.original_file_name'?: string | undefined; 'dll.pe.pehash'?: string | undefined; 'dll.pe.product'?: string | undefined; 'dns.answers'?: { class?: string | undefined; data?: string | undefined; name?: string | undefined; ttl?: string | number | undefined; type?: string | undefined; }[] | undefined; 'dns.header_flags'?: string[] | undefined; 'dns.id'?: string | undefined; 'dns.op_code'?: string | undefined; 'dns.question.class'?: string | undefined; 'dns.question.name'?: string | undefined; 'dns.question.registered_domain'?: string | undefined; 'dns.question.subdomain'?: string | undefined; 'dns.question.top_level_domain'?: string | undefined; 'dns.question.type'?: string | undefined; 'dns.resolved_ip'?: string[] | undefined; 'dns.response_code'?: string | undefined; 'dns.type'?: string | undefined; 'email.attachments'?: { 'file.extension'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.name'?: string | undefined; 'file.size'?: string | number | undefined; }[] | undefined; 'email.bcc.address'?: string[] | undefined; 'email.cc.address'?: string[] | undefined; 'email.content_type'?: string | undefined; 'email.delivery_timestamp'?: string | number | undefined; 'email.direction'?: string | undefined; 'email.from.address'?: string[] | undefined; 'email.local_id'?: string | undefined; 'email.message_id'?: string | undefined; 'email.origination_timestamp'?: string | number | undefined; 'email.reply_to.address'?: string[] | undefined; 'email.sender.address'?: string | undefined; 'email.subject'?: string | undefined; 'email.to.address'?: string[] | undefined; 'email.x_mailer'?: string | undefined; 'error.code'?: string | undefined; 'error.id'?: string | undefined; 'error.message'?: string | undefined; 'error.stack_trace'?: string | undefined; 'error.type'?: string | undefined; 'event.action'?: string | undefined; 'event.agent_id_status'?: string | undefined; 'event.category'?: string[] | undefined; 'event.code'?: string | undefined; 'event.created'?: string | number | undefined; 'event.dataset'?: string | undefined; 'event.duration'?: string | number | undefined; 'event.end'?: string | number | undefined; 'event.hash'?: string | undefined; 'event.id'?: string | undefined; 'event.ingested'?: string | number | undefined; 'event.kind'?: string | undefined; 'event.module'?: string | undefined; 'event.original'?: string | undefined; 'event.outcome'?: string | undefined; 'event.provider'?: string | undefined; 'event.reason'?: string | undefined; 'event.reference'?: string | undefined; 'event.risk_score'?: number | undefined; 'event.risk_score_norm'?: number | undefined; 'event.sequence'?: string | number | undefined; 'event.severity'?: string | number | undefined; 'event.start'?: string | number | undefined; 'event.timezone'?: string | undefined; 'event.type'?: string[] | undefined; 'event.url'?: string | undefined; 'faas.coldstart'?: boolean | undefined; 'faas.execution'?: string | undefined; 'faas.id'?: string | undefined; 'faas.name'?: string | undefined; 'faas.version'?: string | undefined; 'file.accessed'?: string | number | undefined; 'file.attributes'?: string[] | undefined; 'file.code_signature.digest_algorithm'?: string | undefined; 'file.code_signature.exists'?: boolean | undefined; 'file.code_signature.signing_id'?: string | undefined; 'file.code_signature.status'?: string | undefined; 'file.code_signature.subject_name'?: string | undefined; 'file.code_signature.team_id'?: string | undefined; 'file.code_signature.timestamp'?: string | number | undefined; 'file.code_signature.trusted'?: boolean | undefined; 'file.code_signature.valid'?: boolean | undefined; 'file.created'?: string | number | undefined; 'file.ctime'?: string | number | undefined; 'file.device'?: string | undefined; 'file.directory'?: string | undefined; 'file.drive_letter'?: string | undefined; 'file.elf.architecture'?: string | undefined; 'file.elf.byte_order'?: string | undefined; 'file.elf.cpu_type'?: string | undefined; 'file.elf.creation_date'?: string | number | undefined; 'file.elf.exports'?: unknown[] | undefined; 'file.elf.header.abi_version'?: string | undefined; 'file.elf.header.class'?: string | undefined; 'file.elf.header.data'?: string | undefined; 'file.elf.header.entrypoint'?: string | number | undefined; 'file.elf.header.object_version'?: string | undefined; 'file.elf.header.os_abi'?: string | undefined; 'file.elf.header.type'?: string | undefined; 'file.elf.header.version'?: string | undefined; 'file.elf.imports'?: unknown[] | undefined; 'file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'file.elf.shared_libraries'?: string[] | undefined; 'file.elf.telfhash'?: string | undefined; 'file.extension'?: string | undefined; 'file.fork_name'?: string | undefined; 'file.gid'?: string | undefined; 'file.group'?: string | undefined; 'file.hash.md5'?: string | undefined; 'file.hash.sha1'?: string | undefined; 'file.hash.sha256'?: string | undefined; 'file.hash.sha384'?: string | undefined; 'file.hash.sha512'?: string | undefined; 'file.hash.ssdeep'?: string | undefined; 'file.hash.tlsh'?: string | undefined; 'file.inode'?: string | undefined; 'file.mime_type'?: string | undefined; 'file.mode'?: string | undefined; 'file.mtime'?: string | number | undefined; 'file.name'?: string | undefined; 'file.owner'?: string | undefined; 'file.path'?: string | undefined; 'file.pe.architecture'?: string | undefined; 'file.pe.company'?: string | undefined; 'file.pe.description'?: string | undefined; 'file.pe.file_version'?: string | undefined; 'file.pe.imphash'?: string | undefined; 'file.pe.original_file_name'?: string | undefined; 'file.pe.pehash'?: string | undefined; 'file.pe.product'?: string | undefined; 'file.size'?: string | number | undefined; 'file.target_path'?: string | undefined; 'file.type'?: string | undefined; 'file.uid'?: string | undefined; 'file.x509.alternative_names'?: string[] | undefined; 'file.x509.issuer.common_name'?: string[] | undefined; 'file.x509.issuer.country'?: string[] | undefined; 'file.x509.issuer.distinguished_name'?: string | undefined; 'file.x509.issuer.locality'?: string[] | undefined; 'file.x509.issuer.organization'?: string[] | undefined; 'file.x509.issuer.organizational_unit'?: string[] | undefined; 'file.x509.issuer.state_or_province'?: string[] | undefined; 'file.x509.not_after'?: string | number | undefined; 'file.x509.not_before'?: string | number | undefined; 'file.x509.public_key_algorithm'?: string | undefined; 'file.x509.public_key_curve'?: string | undefined; 'file.x509.public_key_exponent'?: string | number | undefined; 'file.x509.public_key_size'?: string | number | undefined; 'file.x509.serial_number'?: string | undefined; 'file.x509.signature_algorithm'?: string | undefined; 'file.x509.subject.common_name'?: string[] | undefined; 'file.x509.subject.country'?: string[] | undefined; 'file.x509.subject.distinguished_name'?: string | undefined; 'file.x509.subject.locality'?: string[] | undefined; 'file.x509.subject.organization'?: string[] | undefined; 'file.x509.subject.organizational_unit'?: string[] | undefined; 'file.x509.subject.state_or_province'?: string[] | undefined; 'file.x509.version_number'?: string | undefined; 'group.domain'?: string | undefined; 'group.id'?: string | undefined; 'group.name'?: string | undefined; 'host.architecture'?: string | undefined; 'host.boot.id'?: string | undefined; 'host.cpu.usage'?: string | number | undefined; 'host.disk.read.bytes'?: string | number | undefined; 'host.disk.write.bytes'?: string | number | undefined; 'host.domain'?: string | undefined; 'host.geo.city_name'?: string | undefined; 'host.geo.continent_code'?: string | undefined; 'host.geo.continent_name'?: string | undefined; 'host.geo.country_iso_code'?: string | undefined; 'host.geo.country_name'?: string | undefined; 'host.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'host.geo.name'?: string | undefined; 'host.geo.postal_code'?: string | undefined; 'host.geo.region_iso_code'?: string | undefined; 'host.geo.region_name'?: string | undefined; 'host.geo.timezone'?: string | undefined; 'host.hostname'?: string | undefined; 'host.id'?: string | undefined; 'host.ip'?: string[] | undefined; 'host.mac'?: string[] | undefined; 'host.name'?: string | undefined; 'host.network.egress.bytes'?: string | number | undefined; 'host.network.egress.packets'?: string | number | undefined; 'host.network.ingress.bytes'?: string | number | undefined; 'host.network.ingress.packets'?: string | number | undefined; 'host.os.family'?: string | undefined; 'host.os.full'?: string | undefined; 'host.os.kernel'?: string | undefined; 'host.os.name'?: string | undefined; 'host.os.platform'?: string | undefined; 'host.os.type'?: string | undefined; 'host.os.version'?: string | undefined; 'host.pid_ns_ino'?: string | undefined; 'host.risk.calculated_level'?: string | undefined; 'host.risk.calculated_score'?: number | undefined; 'host.risk.calculated_score_norm'?: number | undefined; 'host.risk.static_level'?: string | undefined; 'host.risk.static_score'?: number | undefined; 'host.risk.static_score_norm'?: number | undefined; 'host.type'?: string | undefined; 'host.uptime'?: string | number | undefined; 'http.request.body.bytes'?: string | number | undefined; 'http.request.body.content'?: string | undefined; 'http.request.bytes'?: string | number | undefined; 'http.request.id'?: string | undefined; 'http.request.method'?: string | undefined; 'http.request.mime_type'?: string | undefined; 'http.request.referrer'?: string | undefined; 'http.response.body.bytes'?: string | number | undefined; 'http.response.body.content'?: string | undefined; 'http.response.bytes'?: string | number | undefined; 'http.response.mime_type'?: string | undefined; 'http.response.status_code'?: string | number | undefined; 'http.version'?: string | undefined; labels?: unknown; 'log.file.path'?: string | undefined; 'log.level'?: string | undefined; 'log.logger'?: string | undefined; 'log.origin.file.line'?: string | number | undefined; 'log.origin.file.name'?: string | undefined; 'log.origin.function'?: string | undefined; 'log.syslog'?: unknown; message?: string | undefined; 'network.application'?: string | undefined; 'network.bytes'?: string | number | undefined; 'network.community_id'?: string | undefined; 'network.direction'?: string | undefined; 'network.forwarded_ip'?: string | undefined; 'network.iana_number'?: string | undefined; 'network.inner'?: unknown; 'network.name'?: string | undefined; 'network.packets'?: string | number | undefined; 'network.protocol'?: string | undefined; 'network.transport'?: string | undefined; 'network.type'?: string | undefined; 'network.vlan.id'?: string | undefined; 'network.vlan.name'?: string | undefined; 'observer.egress'?: unknown; 'observer.geo.city_name'?: string | undefined; 'observer.geo.continent_code'?: string | undefined; 'observer.geo.continent_name'?: string | undefined; 'observer.geo.country_iso_code'?: string | undefined; 'observer.geo.country_name'?: string | undefined; 'observer.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'observer.geo.name'?: string | undefined; 'observer.geo.postal_code'?: string | undefined; 'observer.geo.region_iso_code'?: string | undefined; 'observer.geo.region_name'?: string | undefined; 'observer.geo.timezone'?: string | undefined; 'observer.hostname'?: string | undefined; 'observer.ingress'?: unknown; 'observer.ip'?: string[] | undefined; 'observer.mac'?: string[] | undefined; 'observer.name'?: string | undefined; 'observer.os.family'?: string | undefined; 'observer.os.full'?: string | undefined; 'observer.os.kernel'?: string | undefined; 'observer.os.name'?: string | undefined; 'observer.os.platform'?: string | undefined; 'observer.os.type'?: string | undefined; 'observer.os.version'?: string | undefined; 'observer.product'?: string | undefined; 'observer.serial_number'?: string | undefined; 'observer.type'?: string | undefined; 'observer.vendor'?: string | undefined; 'observer.version'?: string | undefined; 'orchestrator.api_version'?: string | undefined; 'orchestrator.cluster.id'?: string | undefined; 'orchestrator.cluster.name'?: string | undefined; 'orchestrator.cluster.url'?: string | undefined; 'orchestrator.cluster.version'?: string | undefined; 'orchestrator.namespace'?: string | undefined; 'orchestrator.organization'?: string | undefined; 'orchestrator.resource.id'?: string | undefined; 'orchestrator.resource.ip'?: string[] | undefined; 'orchestrator.resource.name'?: string | undefined; 'orchestrator.resource.parent.type'?: string | undefined; 'orchestrator.resource.type'?: string | undefined; 'orchestrator.type'?: string | undefined; 'organization.id'?: string | undefined; 'organization.name'?: string | undefined; 'package.architecture'?: string | undefined; 'package.build_version'?: string | undefined; 'package.checksum'?: string | undefined; 'package.description'?: string | undefined; 'package.install_scope'?: string | undefined; 'package.installed'?: string | number | undefined; 'package.license'?: string | undefined; 'package.name'?: string | undefined; 'package.path'?: string | undefined; 'package.reference'?: string | undefined; 'package.size'?: string | number | undefined; 'package.type'?: string | undefined; 'package.version'?: string | undefined; 'process.args'?: string[] | undefined; 'process.args_count'?: string | number | undefined; 'process.code_signature.digest_algorithm'?: string | undefined; 'process.code_signature.exists'?: boolean | undefined; 'process.code_signature.signing_id'?: string | undefined; 'process.code_signature.status'?: string | undefined; 'process.code_signature.subject_name'?: string | undefined; 'process.code_signature.team_id'?: string | undefined; 'process.code_signature.timestamp'?: string | number | undefined; 'process.code_signature.trusted'?: boolean | undefined; 'process.code_signature.valid'?: boolean | undefined; 'process.command_line'?: string | undefined; 'process.elf.architecture'?: string | undefined; 'process.elf.byte_order'?: string | undefined; 'process.elf.cpu_type'?: string | undefined; 'process.elf.creation_date'?: string | number | undefined; 'process.elf.exports'?: unknown[] | undefined; 'process.elf.header.abi_version'?: string | undefined; 'process.elf.header.class'?: string | undefined; 'process.elf.header.data'?: string | undefined; 'process.elf.header.entrypoint'?: string | number | undefined; 'process.elf.header.object_version'?: string | undefined; 'process.elf.header.os_abi'?: string | undefined; 'process.elf.header.type'?: string | undefined; 'process.elf.header.version'?: string | undefined; 'process.elf.imports'?: unknown[] | undefined; 'process.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.elf.shared_libraries'?: string[] | undefined; 'process.elf.telfhash'?: string | undefined; 'process.end'?: string | number | undefined; 'process.entity_id'?: string | undefined; 'process.entry_leader.args'?: string[] | undefined; 'process.entry_leader.args_count'?: string | number | undefined; 'process.entry_leader.attested_groups.name'?: string | undefined; 'process.entry_leader.attested_user.id'?: string | undefined; 'process.entry_leader.attested_user.name'?: string | undefined; 'process.entry_leader.command_line'?: string | undefined; 'process.entry_leader.entity_id'?: string | undefined; 'process.entry_leader.entry_meta.source.ip'?: string | undefined; 'process.entry_leader.entry_meta.type'?: string | undefined; 'process.entry_leader.executable'?: string | undefined; 'process.entry_leader.group.id'?: string | undefined; 'process.entry_leader.group.name'?: string | undefined; 'process.entry_leader.interactive'?: boolean | undefined; 'process.entry_leader.name'?: string | undefined; 'process.entry_leader.parent.entity_id'?: string | undefined; 'process.entry_leader.parent.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.entity_id'?: string | undefined; 'process.entry_leader.parent.session_leader.pid'?: string | number | undefined; 'process.entry_leader.parent.session_leader.start'?: string | number | undefined; 'process.entry_leader.parent.start'?: string | number | undefined; 'process.entry_leader.pid'?: string | number | undefined; 'process.entry_leader.real_group.id'?: string | undefined; 'process.entry_leader.real_group.name'?: string | undefined; 'process.entry_leader.real_user.id'?: string | undefined; 'process.entry_leader.real_user.name'?: string | undefined; 'process.entry_leader.same_as_process'?: boolean | undefined; 'process.entry_leader.saved_group.id'?: string | undefined; 'process.entry_leader.saved_group.name'?: string | undefined; 'process.entry_leader.saved_user.id'?: string | undefined; 'process.entry_leader.saved_user.name'?: string | undefined; 'process.entry_leader.start'?: string | number | undefined; 'process.entry_leader.supplemental_groups.id'?: string | undefined; 'process.entry_leader.supplemental_groups.name'?: string | undefined; 'process.entry_leader.tty'?: unknown; 'process.entry_leader.user.id'?: string | undefined; 'process.entry_leader.user.name'?: string | undefined; 'process.entry_leader.working_directory'?: string | undefined; 'process.env_vars'?: string[] | undefined; 'process.executable'?: string | undefined; 'process.exit_code'?: string | number | undefined; 'process.group_leader.args'?: string[] | undefined; 'process.group_leader.args_count'?: string | number | undefined; 'process.group_leader.command_line'?: string | undefined; 'process.group_leader.entity_id'?: string | undefined; 'process.group_leader.executable'?: string | undefined; 'process.group_leader.group.id'?: string | undefined; 'process.group_leader.group.name'?: string | undefined; 'process.group_leader.interactive'?: boolean | undefined; 'process.group_leader.name'?: string | undefined; 'process.group_leader.pid'?: string | number | undefined; 'process.group_leader.real_group.id'?: string | undefined; 'process.group_leader.real_group.name'?: string | undefined; 'process.group_leader.real_user.id'?: string | undefined; 'process.group_leader.real_user.name'?: string | undefined; 'process.group_leader.same_as_process'?: boolean | undefined; 'process.group_leader.saved_group.id'?: string | undefined; 'process.group_leader.saved_group.name'?: string | undefined; 'process.group_leader.saved_user.id'?: string | undefined; 'process.group_leader.saved_user.name'?: string | undefined; 'process.group_leader.start'?: string | number | undefined; 'process.group_leader.supplemental_groups.id'?: string | undefined; 'process.group_leader.supplemental_groups.name'?: string | undefined; 'process.group_leader.tty'?: unknown; 'process.group_leader.user.id'?: string | undefined; 'process.group_leader.user.name'?: string | undefined; 'process.group_leader.working_directory'?: string | undefined; 'process.hash.md5'?: string | undefined; 'process.hash.sha1'?: string | undefined; 'process.hash.sha256'?: string | undefined; 'process.hash.sha384'?: string | undefined; 'process.hash.sha512'?: string | undefined; 'process.hash.ssdeep'?: string | undefined; 'process.hash.tlsh'?: string | undefined; 'process.interactive'?: boolean | undefined; 'process.io'?: unknown; 'process.name'?: string | undefined; 'process.parent.args'?: string[] | undefined; 'process.parent.args_count'?: string | number | undefined; 'process.parent.code_signature.digest_algorithm'?: string | undefined; 'process.parent.code_signature.exists'?: boolean | undefined; 'process.parent.code_signature.signing_id'?: string | undefined; 'process.parent.code_signature.status'?: string | undefined; 'process.parent.code_signature.subject_name'?: string | undefined; 'process.parent.code_signature.team_id'?: string | undefined; 'process.parent.code_signature.timestamp'?: string | number | undefined; 'process.parent.code_signature.trusted'?: boolean | undefined; 'process.parent.code_signature.valid'?: boolean | undefined; 'process.parent.command_line'?: string | undefined; 'process.parent.elf.architecture'?: string | undefined; 'process.parent.elf.byte_order'?: string | undefined; 'process.parent.elf.cpu_type'?: string | undefined; 'process.parent.elf.creation_date'?: string | number | undefined; 'process.parent.elf.exports'?: unknown[] | undefined; 'process.parent.elf.header.abi_version'?: string | undefined; 'process.parent.elf.header.class'?: string | undefined; 'process.parent.elf.header.data'?: string | undefined; 'process.parent.elf.header.entrypoint'?: string | number | undefined; 'process.parent.elf.header.object_version'?: string | undefined; 'process.parent.elf.header.os_abi'?: string | undefined; 'process.parent.elf.header.type'?: string | undefined; 'process.parent.elf.header.version'?: string | undefined; 'process.parent.elf.imports'?: unknown[] | undefined; 'process.parent.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'process.parent.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'process.parent.elf.shared_libraries'?: string[] | undefined; 'process.parent.elf.telfhash'?: string | undefined; 'process.parent.end'?: string | number | undefined; 'process.parent.entity_id'?: string | undefined; 'process.parent.executable'?: string | undefined; 'process.parent.exit_code'?: string | number | undefined; 'process.parent.group.id'?: string | undefined; 'process.parent.group.name'?: string | undefined; 'process.parent.group_leader.entity_id'?: string | undefined; 'process.parent.group_leader.pid'?: string | number | undefined; 'process.parent.group_leader.start'?: string | number | undefined; 'process.parent.hash.md5'?: string | undefined; 'process.parent.hash.sha1'?: string | undefined; 'process.parent.hash.sha256'?: string | undefined; 'process.parent.hash.sha384'?: string | undefined; 'process.parent.hash.sha512'?: string | undefined; 'process.parent.hash.ssdeep'?: string | undefined; 'process.parent.hash.tlsh'?: string | undefined; 'process.parent.interactive'?: boolean | undefined; 'process.parent.name'?: string | undefined; 'process.parent.pe.architecture'?: string | undefined; 'process.parent.pe.company'?: string | undefined; 'process.parent.pe.description'?: string | undefined; 'process.parent.pe.file_version'?: string | undefined; 'process.parent.pe.imphash'?: string | undefined; 'process.parent.pe.original_file_name'?: string | undefined; 'process.parent.pe.pehash'?: string | undefined; 'process.parent.pe.product'?: string | undefined; 'process.parent.pgid'?: string | number | undefined; 'process.parent.pid'?: string | number | undefined; 'process.parent.real_group.id'?: string | undefined; 'process.parent.real_group.name'?: string | undefined; 'process.parent.real_user.id'?: string | undefined; 'process.parent.real_user.name'?: string | undefined; 'process.parent.saved_group.id'?: string | undefined; 'process.parent.saved_group.name'?: string | undefined; 'process.parent.saved_user.id'?: string | undefined; 'process.parent.saved_user.name'?: string | undefined; 'process.parent.start'?: string | number | undefined; 'process.parent.supplemental_groups.id'?: string | undefined; 'process.parent.supplemental_groups.name'?: string | undefined; 'process.parent.thread.id'?: string | number | undefined; 'process.parent.thread.name'?: string | undefined; 'process.parent.title'?: string | undefined; 'process.parent.tty'?: unknown; 'process.parent.uptime'?: string | number | undefined; 'process.parent.user.id'?: string | undefined; 'process.parent.user.name'?: string | undefined; 'process.parent.working_directory'?: string | undefined; 'process.pe.architecture'?: string | undefined; 'process.pe.company'?: string | undefined; 'process.pe.description'?: string | undefined; 'process.pe.file_version'?: string | undefined; 'process.pe.imphash'?: string | undefined; 'process.pe.original_file_name'?: string | undefined; 'process.pe.pehash'?: string | undefined; 'process.pe.product'?: string | undefined; 'process.pgid'?: string | number | undefined; 'process.pid'?: string | number | undefined; 'process.previous.args'?: string[] | undefined; 'process.previous.args_count'?: string | number | undefined; 'process.previous.executable'?: string | undefined; 'process.real_group.id'?: string | undefined; 'process.real_group.name'?: string | undefined; 'process.real_user.id'?: string | undefined; 'process.real_user.name'?: string | undefined; 'process.saved_group.id'?: string | undefined; 'process.saved_group.name'?: string | undefined; 'process.saved_user.id'?: string | undefined; 'process.saved_user.name'?: string | undefined; 'process.session_leader.args'?: string[] | undefined; 'process.session_leader.args_count'?: string | number | undefined; 'process.session_leader.command_line'?: string | undefined; 'process.session_leader.entity_id'?: string | undefined; 'process.session_leader.executable'?: string | undefined; 'process.session_leader.group.id'?: string | undefined; 'process.session_leader.group.name'?: string | undefined; 'process.session_leader.interactive'?: boolean | undefined; 'process.session_leader.name'?: string | undefined; 'process.session_leader.parent.entity_id'?: string | undefined; 'process.session_leader.parent.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.entity_id'?: string | undefined; 'process.session_leader.parent.session_leader.pid'?: string | number | undefined; 'process.session_leader.parent.session_leader.start'?: string | number | undefined; 'process.session_leader.parent.start'?: string | number | undefined; 'process.session_leader.pid'?: string | number | undefined; 'process.session_leader.real_group.id'?: string | undefined; 'process.session_leader.real_group.name'?: string | undefined; 'process.session_leader.real_user.id'?: string | undefined; 'process.session_leader.real_user.name'?: string | undefined; 'process.session_leader.same_as_process'?: boolean | undefined; 'process.session_leader.saved_group.id'?: string | undefined; 'process.session_leader.saved_group.name'?: string | undefined; 'process.session_leader.saved_user.id'?: string | undefined; 'process.session_leader.saved_user.name'?: string | undefined; 'process.session_leader.start'?: string | number | undefined; 'process.session_leader.supplemental_groups.id'?: string | undefined; 'process.session_leader.supplemental_groups.name'?: string | undefined; 'process.session_leader.tty'?: unknown; 'process.session_leader.user.id'?: string | undefined; 'process.session_leader.user.name'?: string | undefined; 'process.session_leader.working_directory'?: string | undefined; 'process.start'?: string | number | undefined; 'process.supplemental_groups.id'?: string | undefined; 'process.supplemental_groups.name'?: string | undefined; 'process.thread.id'?: string | number | undefined; 'process.thread.name'?: string | undefined; 'process.title'?: string | undefined; 'process.tty'?: unknown; 'process.uptime'?: string | number | undefined; 'process.user.id'?: string | undefined; 'process.user.name'?: string | undefined; 'process.working_directory'?: string | undefined; 'registry.data.bytes'?: string | undefined; 'registry.data.strings'?: string[] | undefined; 'registry.data.type'?: string | undefined; 'registry.hive'?: string | undefined; 'registry.key'?: string | undefined; 'registry.path'?: string | undefined; 'registry.value'?: string | undefined; 'related.hash'?: string[] | undefined; 'related.hosts'?: string[] | undefined; 'related.ip'?: string[] | undefined; 'related.user'?: string[] | undefined; 'rule.author'?: string[] | undefined; 'rule.category'?: string | undefined; 'rule.description'?: string | undefined; 'rule.id'?: string | undefined; 'rule.license'?: string | undefined; 'rule.name'?: string | undefined; 'rule.reference'?: string | undefined; 'rule.ruleset'?: string | undefined; 'rule.uuid'?: string | undefined; 'rule.version'?: string | undefined; 'server.address'?: string | undefined; 'server.as.number'?: string | number | undefined; 'server.as.organization.name'?: string | undefined; 'server.bytes'?: string | number | undefined; 'server.domain'?: string | undefined; 'server.geo.city_name'?: string | undefined; 'server.geo.continent_code'?: string | undefined; 'server.geo.continent_name'?: string | undefined; 'server.geo.country_iso_code'?: string | undefined; 'server.geo.country_name'?: string | undefined; 'server.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'server.geo.name'?: string | undefined; 'server.geo.postal_code'?: string | undefined; 'server.geo.region_iso_code'?: string | undefined; 'server.geo.region_name'?: string | undefined; 'server.geo.timezone'?: string | undefined; 'server.ip'?: string | undefined; 'server.mac'?: string | undefined; 'server.nat.ip'?: string | undefined; 'server.nat.port'?: string | number | undefined; 'server.packets'?: string | number | undefined; 'server.port'?: string | number | undefined; 'server.registered_domain'?: string | undefined; 'server.subdomain'?: string | undefined; 'server.top_level_domain'?: string | undefined; 'server.user.domain'?: string | undefined; 'server.user.email'?: string | undefined; 'server.user.full_name'?: string | undefined; 'server.user.group.domain'?: string | undefined; 'server.user.group.id'?: string | undefined; 'server.user.group.name'?: string | undefined; 'server.user.hash'?: string | undefined; 'server.user.id'?: string | undefined; 'server.user.name'?: string | undefined; 'server.user.roles'?: string[] | undefined; 'service.address'?: string | undefined; 'service.environment'?: string | undefined; 'service.ephemeral_id'?: string | undefined; 'service.id'?: string | undefined; 'service.name'?: string | undefined; 'service.node.name'?: string | undefined; 'service.node.role'?: string | undefined; 'service.node.roles'?: string[] | undefined; 'service.origin.address'?: string | undefined; 'service.origin.environment'?: string | undefined; 'service.origin.ephemeral_id'?: string | undefined; 'service.origin.id'?: string | undefined; 'service.origin.name'?: string | undefined; 'service.origin.node.name'?: string | undefined; 'service.origin.node.role'?: string | undefined; 'service.origin.node.roles'?: string[] | undefined; 'service.origin.state'?: string | undefined; 'service.origin.type'?: string | undefined; 'service.origin.version'?: string | undefined; 'service.state'?: string | undefined; 'service.target.address'?: string | undefined; 'service.target.environment'?: string | undefined; 'service.target.ephemeral_id'?: string | undefined; 'service.target.id'?: string | undefined; 'service.target.name'?: string | undefined; 'service.target.node.name'?: string | undefined; 'service.target.node.role'?: string | undefined; 'service.target.node.roles'?: string[] | undefined; 'service.target.state'?: string | undefined; 'service.target.type'?: string | undefined; 'service.target.version'?: string | undefined; 'service.type'?: string | undefined; 'service.version'?: string | undefined; 'source.address'?: string | undefined; 'source.as.number'?: string | number | undefined; 'source.as.organization.name'?: string | undefined; 'source.bytes'?: string | number | undefined; 'source.domain'?: string | undefined; 'source.geo.city_name'?: string | undefined; 'source.geo.continent_code'?: string | undefined; 'source.geo.continent_name'?: string | undefined; 'source.geo.country_iso_code'?: string | undefined; 'source.geo.country_name'?: string | undefined; 'source.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'source.geo.name'?: string | undefined; 'source.geo.postal_code'?: string | undefined; 'source.geo.region_iso_code'?: string | undefined; 'source.geo.region_name'?: string | undefined; 'source.geo.timezone'?: string | undefined; 'source.ip'?: string | undefined; 'source.mac'?: string | undefined; 'source.nat.ip'?: string | undefined; 'source.nat.port'?: string | number | undefined; 'source.packets'?: string | number | undefined; 'source.port'?: string | number | undefined; 'source.registered_domain'?: string | undefined; 'source.subdomain'?: string | undefined; 'source.top_level_domain'?: string | undefined; 'source.user.domain'?: string | undefined; 'source.user.email'?: string | undefined; 'source.user.full_name'?: string | undefined; 'source.user.group.domain'?: string | undefined; 'source.user.group.id'?: string | undefined; 'source.user.group.name'?: string | undefined; 'source.user.hash'?: string | undefined; 'source.user.id'?: string | undefined; 'source.user.name'?: string | undefined; 'source.user.roles'?: string[] | undefined; 'span.id'?: string | undefined; tags?: string[] | undefined; 'threat.enrichments'?: { indicator?: unknown; 'matched.atomic'?: string | undefined; 'matched.field'?: string | undefined; 'matched.id'?: string | undefined; 'matched.index'?: string | undefined; 'matched.occurred'?: string | number | undefined; 'matched.type'?: string | undefined; }[] | undefined; 'threat.feed.dashboard_id'?: string | undefined; 'threat.feed.description'?: string | undefined; 'threat.feed.name'?: string | undefined; 'threat.feed.reference'?: string | undefined; 'threat.framework'?: string | undefined; 'threat.group.alias'?: string[] | undefined; 'threat.group.id'?: string | undefined; 'threat.group.name'?: string | undefined; 'threat.group.reference'?: string | undefined; 'threat.indicator.as.number'?: string | number | undefined; 'threat.indicator.as.organization.name'?: string | undefined; 'threat.indicator.confidence'?: string | undefined; 'threat.indicator.description'?: string | undefined; 'threat.indicator.email.address'?: string | undefined; 'threat.indicator.file.accessed'?: string | number | undefined; 'threat.indicator.file.attributes'?: string[] | undefined; 'threat.indicator.file.code_signature.digest_algorithm'?: string | undefined; 'threat.indicator.file.code_signature.exists'?: boolean | undefined; 'threat.indicator.file.code_signature.signing_id'?: string | undefined; 'threat.indicator.file.code_signature.status'?: string | undefined; 'threat.indicator.file.code_signature.subject_name'?: string | undefined; 'threat.indicator.file.code_signature.team_id'?: string | undefined; 'threat.indicator.file.code_signature.timestamp'?: string | number | undefined; 'threat.indicator.file.code_signature.trusted'?: boolean | undefined; 'threat.indicator.file.code_signature.valid'?: boolean | undefined; 'threat.indicator.file.created'?: string | number | undefined; 'threat.indicator.file.ctime'?: string | number | undefined; 'threat.indicator.file.device'?: string | undefined; 'threat.indicator.file.directory'?: string | undefined; 'threat.indicator.file.drive_letter'?: string | undefined; 'threat.indicator.file.elf.architecture'?: string | undefined; 'threat.indicator.file.elf.byte_order'?: string | undefined; 'threat.indicator.file.elf.cpu_type'?: string | undefined; 'threat.indicator.file.elf.creation_date'?: string | number | undefined; 'threat.indicator.file.elf.exports'?: unknown[] | undefined; 'threat.indicator.file.elf.header.abi_version'?: string | undefined; 'threat.indicator.file.elf.header.class'?: string | undefined; 'threat.indicator.file.elf.header.data'?: string | undefined; 'threat.indicator.file.elf.header.entrypoint'?: string | number | undefined; 'threat.indicator.file.elf.header.object_version'?: string | undefined; 'threat.indicator.file.elf.header.os_abi'?: string | undefined; 'threat.indicator.file.elf.header.type'?: string | undefined; 'threat.indicator.file.elf.header.version'?: string | undefined; 'threat.indicator.file.elf.imports'?: unknown[] | undefined; 'threat.indicator.file.elf.sections'?: { chi2?: string | number | undefined; entropy?: string | number | undefined; flags?: string | undefined; name?: string | undefined; physical_offset?: string | undefined; physical_size?: string | number | undefined; type?: string | undefined; virtual_address?: string | number | undefined; virtual_size?: string | number | undefined; }[] | undefined; 'threat.indicator.file.elf.segments'?: { sections?: string | undefined; type?: string | undefined; }[] | undefined; 'threat.indicator.file.elf.shared_libraries'?: string[] | undefined; 'threat.indicator.file.elf.telfhash'?: string | undefined; 'threat.indicator.file.extension'?: string | undefined; 'threat.indicator.file.fork_name'?: string | undefined; 'threat.indicator.file.gid'?: string | undefined; 'threat.indicator.file.group'?: string | undefined; 'threat.indicator.file.hash.md5'?: string | undefined; 'threat.indicator.file.hash.sha1'?: string | undefined; 'threat.indicator.file.hash.sha256'?: string | undefined; 'threat.indicator.file.hash.sha384'?: string | undefined; 'threat.indicator.file.hash.sha512'?: string | undefined; 'threat.indicator.file.hash.ssdeep'?: string | undefined; 'threat.indicator.file.hash.tlsh'?: string | undefined; 'threat.indicator.file.inode'?: string | undefined; 'threat.indicator.file.mime_type'?: string | undefined; 'threat.indicator.file.mode'?: string | undefined; 'threat.indicator.file.mtime'?: string | number | undefined; 'threat.indicator.file.name'?: string | undefined; 'threat.indicator.file.owner'?: string | undefined; 'threat.indicator.file.path'?: string | undefined; 'threat.indicator.file.pe.architecture'?: string | undefined; 'threat.indicator.file.pe.company'?: string | undefined; 'threat.indicator.file.pe.description'?: string | undefined; 'threat.indicator.file.pe.file_version'?: string | undefined; 'threat.indicator.file.pe.imphash'?: string | undefined; 'threat.indicator.file.pe.original_file_name'?: string | undefined; 'threat.indicator.file.pe.pehash'?: string | undefined; 'threat.indicator.file.pe.product'?: string | undefined; 'threat.indicator.file.size'?: string | number | undefined; 'threat.indicator.file.target_path'?: string | undefined; 'threat.indicator.file.type'?: string | undefined; 'threat.indicator.file.uid'?: string | undefined; 'threat.indicator.file.x509.alternative_names'?: string[] | undefined; 'threat.indicator.file.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.file.x509.issuer.country'?: string[] | undefined; 'threat.indicator.file.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.file.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.not_after'?: string | number | undefined; 'threat.indicator.file.x509.not_before'?: string | number | undefined; 'threat.indicator.file.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.file.x509.public_key_curve'?: string | undefined; 'threat.indicator.file.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.file.x509.public_key_size'?: string | number | undefined; 'threat.indicator.file.x509.serial_number'?: string | undefined; 'threat.indicator.file.x509.signature_algorithm'?: string | undefined; 'threat.indicator.file.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.file.x509.subject.country'?: string[] | undefined; 'threat.indicator.file.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.file.x509.subject.locality'?: string[] | undefined; 'threat.indicator.file.x509.subject.organization'?: string[] | undefined; 'threat.indicator.file.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.file.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.file.x509.version_number'?: string | undefined; 'threat.indicator.first_seen'?: string | number | undefined; 'threat.indicator.geo.city_name'?: string | undefined; 'threat.indicator.geo.continent_code'?: string | undefined; 'threat.indicator.geo.continent_name'?: string | undefined; 'threat.indicator.geo.country_iso_code'?: string | undefined; 'threat.indicator.geo.country_name'?: string | undefined; 'threat.indicator.geo.location'?: string | { type: string; coordinates: number[]; } | { lat: number; lon: number; } | { location: number[]; } | { location: string; } | undefined; 'threat.indicator.geo.name'?: string | undefined; 'threat.indicator.geo.postal_code'?: string | undefined; 'threat.indicator.geo.region_iso_code'?: string | undefined; 'threat.indicator.geo.region_name'?: string | undefined; 'threat.indicator.geo.timezone'?: string | undefined; 'threat.indicator.ip'?: string | undefined; 'threat.indicator.last_seen'?: string | number | undefined; 'threat.indicator.marking.tlp'?: string | undefined; 'threat.indicator.marking.tlp_version'?: string | undefined; 'threat.indicator.modified_at'?: string | number | undefined; 'threat.indicator.port'?: string | number | undefined; 'threat.indicator.provider'?: string | undefined; 'threat.indicator.reference'?: string | undefined; 'threat.indicator.registry.data.bytes'?: string | undefined; 'threat.indicator.registry.data.strings'?: string[] | undefined; 'threat.indicator.registry.data.type'?: string | undefined; 'threat.indicator.registry.hive'?: string | undefined; 'threat.indicator.registry.key'?: string | undefined; 'threat.indicator.registry.path'?: string | undefined; 'threat.indicator.registry.value'?: string | undefined; 'threat.indicator.scanner_stats'?: string | number | undefined; 'threat.indicator.sightings'?: string | number | undefined; 'threat.indicator.type'?: string | undefined; 'threat.indicator.url.domain'?: string | undefined; 'threat.indicator.url.extension'?: string | undefined; 'threat.indicator.url.fragment'?: string | undefined; 'threat.indicator.url.full'?: string | undefined; 'threat.indicator.url.original'?: string | undefined; 'threat.indicator.url.password'?: string | undefined; 'threat.indicator.url.path'?: string | undefined; 'threat.indicator.url.port'?: string | number | undefined; 'threat.indicator.url.query'?: string | undefined; 'threat.indicator.url.registered_domain'?: string | undefined; 'threat.indicator.url.scheme'?: string | undefined; 'threat.indicator.url.subdomain'?: string | undefined; 'threat.indicator.url.top_level_domain'?: string | undefined; 'threat.indicator.url.username'?: string | undefined; 'threat.indicator.x509.alternative_names'?: string[] | undefined; 'threat.indicator.x509.issuer.common_name'?: string[] | undefined; 'threat.indicator.x509.issuer.country'?: string[] | undefined; 'threat.indicator.x509.issuer.distinguished_name'?: string | undefined; 'threat.indicator.x509.issuer.locality'?: string[] | undefined; 'threat.indicator.x509.issuer.organization'?: string[] | undefined; 'threat.indicator.x509.issuer.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.issuer.state_or_province'?: string[] | undefined; 'threat.indicator.x509.not_after'?: string | number | undefined; 'threat.indicator.x509.not_before'?: string | number | undefined; 'threat.indicator.x509.public_key_algorithm'?: string | undefined; 'threat.indicator.x509.public_key_curve'?: string | undefined; 'threat.indicator.x509.public_key_exponent'?: string | number | undefined; 'threat.indicator.x509.public_key_size'?: string | number | undefined; 'threat.indicator.x509.serial_number'?: string | undefined; 'threat.indicator.x509.signature_algorithm'?: string | undefined; 'threat.indicator.x509.subject.common_name'?: string[] | undefined; 'threat.indicator.x509.subject.country'?: string[] | undefined; 'threat.indicator.x509.subject.distinguished_name'?: string | undefined; 'threat.indicator.x509.subject.locality'?: string[] | undefined; 'threat.indicator.x509.subject.organization'?: string[] | undefined; 'threat.indicator.x509.subject.organizational_unit'?: string[] | undefined; 'threat.indicator.x509.subject.state_or_province'?: string[] | undefined; 'threat.indicator.x509.version_number'?: string | undefined; 'threat.software.alias'?: string[] | undefined; 'threat.software.id'?: string | undefined; 'threat.software.name'?: string | undefined; 'threat.software.platforms'?: string[] | undefined; 'threat.software.reference'?: string | undefined; 'threat.software.type'?: string | undefined; 'threat.tactic.id'?: string[] | undefined; 'threat.tactic.name'?: string[] | undefined; 'threat.tactic.reference'?: string[] | undefined; 'threat.technique.id'?: string[] | undefined; 'threat.technique.name'?: string[] | undefined; 'threat.technique.reference'?: string[] | undefined; 'threat.technique.subtechnique.id'?: string[] | undefined; 'threat.technique.subtechnique.name'?: string[] | undefined; 'threat.technique.subtechnique.reference'?: string[] | undefined; 'tls.cipher'?: string | undefined; 'tls.client.certificate'?: string | undefined; 'tls.client.certificate_chain'?: string[] | undefined; 'tls.client.hash.md5'?: string | undefined; 'tls.client.hash.sha1'?: string | undefined; 'tls.client.hash.sha256'?: string | undefined; 'tls.client.issuer'?: string | undefined; 'tls.client.ja3'?: string | undefined; 'tls.client.not_after'?: string | number | undefined; 'tls.client.not_before'?: string | number | undefined; 'tls.client.server_name'?: string | undefined; 'tls.client.subject'?: string | undefined; 'tls.client.supported_ciphers'?: string[] | undefined; 'tls.client.x509.alternative_names'?: string[] | undefined; 'tls.client.x509.issuer.common_name'?: string[] | undefined; 'tls.client.x509.issuer.country'?: string[] | undefined; 'tls.client.x509.issuer.distinguished_name'?: string | undefined; 'tls.client.x509.issuer.locality'?: string[] | undefined; 'tls.client.x509.issuer.organization'?: string[] | undefined; 'tls.client.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.client.x509.issuer.state_or_province'?: string[] | undefined; 'tls.client.x509.not_after'?: string | number | undefined; 'tls.client.x509.not_before'?: string | number | undefined; 'tls.client.x509.public_key_algorithm'?: string | undefined; 'tls.client.x509.public_key_curve'?: string | undefined; 'tls.client.x509.public_key_exponent'?: string | number | undefined; 'tls.client.x509.public_key_size'?: string | number | undefined; 'tls.client.x509.serial_number'?: string | undefined; 'tls.client.x509.signature_algorithm'?: string | undefined; 'tls.client.x509.subject.common_name'?: string[] | undefined; 'tls.client.x509.subject.country'?: string[] | undefined; 'tls.client.x509.subject.distinguished_name'?: string | undefined; 'tls.client.x509.subject.locality'?: string[] | undefined; 'tls.client.x509.subject.organization'?: string[] | undefined; 'tls.client.x509.subject.organizational_unit'?: string[] | undefined; 'tls.client.x509.subject.state_or_province'?: string[] | undefined; 'tls.client.x509.version_number'?: string | undefined; 'tls.curve'?: string | undefined; 'tls.established'?: boolean | undefined; 'tls.next_protocol'?: string | undefined; 'tls.resumed'?: boolean | undefined; 'tls.server.certificate'?: string | undefined; 'tls.server.certificate_chain'?: string[] | undefined; 'tls.server.hash.md5'?: string | undefined; 'tls.server.hash.sha1'?: string | undefined; 'tls.server.hash.sha256'?: string | undefined; 'tls.server.issuer'?: string | undefined; 'tls.server.ja3s'?: string | undefined; 'tls.server.not_after'?: string | number | undefined; 'tls.server.not_before'?: string | number | undefined; 'tls.server.subject'?: string | undefined; 'tls.server.x509.alternative_names'?: string[] | undefined; 'tls.server.x509.issuer.common_name'?: string[] | undefined; 'tls.server.x509.issuer.country'?: string[] | undefined; 'tls.server.x509.issuer.distinguished_name'?: string | undefined; 'tls.server.x509.issuer.locality'?: string[] | undefined; 'tls.server.x509.issuer.organization'?: string[] | undefined; 'tls.server.x509.issuer.organizational_unit'?: string[] | undefined; 'tls.server.x509.issuer.state_or_province'?: string[] | undefined; 'tls.server.x509.not_after'?: string | number | undefined; 'tls.server.x509.not_before'?: string | number | undefined; 'tls.server.x509.public_key_algorithm'?: string | undefined; 'tls.server.x509.public_key_curve'?: string | undefined; 'tls.server.x509.public_key_exponent'?: string | number | undefined; 'tls.server.x509.public_key_size'?: string | number | undefined; 'tls.server.x509.serial_number'?: string | undefined; 'tls.server.x509.signature_algorithm'?: string | undefined; 'tls.server.x509.subject.common_name'?: string[] | undefined; 'tls.server.x509.subject.country'?: string[] | undefined; 'tls.server.x509.subject.distinguished_name'?: string | undefined; 'tls.server.x509.subject.locality'?: string[] | undefined; 'tls.server.x509.subject.organization'?: string[] | undefined; 'tls.server.x509.subject.organizational_unit'?: string[] | undefined; 'tls.server.x509.subject.state_or_province'?: string[] | undefined; 'tls.server.x509.version_number'?: string | undefined; 'tls.version'?: string | undefined; 'tls.version_protocol'?: string | undefined; 'trace.id'?: string | undefined; 'transaction.id'?: string | undefined; 'url.domain'?: string | undefined; 'url.extension'?: string | undefined; 'url.fragment'?: string | undefined; 'url.full'?: string | undefined; 'url.original'?: string | undefined; 'url.password'?: string | undefined; 'url.path'?: string | undefined; 'url.port'?: string | number | undefined; 'url.query'?: string | undefined; 'url.registered_domain'?: string | undefined; 'url.scheme'?: string | undefined; 'url.subdomain'?: string | undefined; 'url.top_level_domain'?: string | undefined; 'url.username'?: string | undefined; 'user.changes.domain'?: string | undefined; 'user.changes.email'?: string | undefined; 'user.changes.full_name'?: string | undefined; 'user.changes.group.domain'?: string | undefined; 'user.changes.group.id'?: string | undefined; 'user.changes.group.name'?: string | undefined; 'user.changes.hash'?: string | undefined; 'user.changes.id'?: string | undefined; 'user.changes.name'?: string | undefined; 'user.changes.roles'?: string[] | undefined; 'user.domain'?: string | undefined; 'user.effective.domain'?: string | undefined; 'user.effective.email'?: string | undefined; 'user.effective.full_name'?: string | undefined; 'user.effective.group.domain'?: string | undefined; 'user.effective.group.id'?: string | undefined; 'user.effective.group.name'?: string | undefined; 'user.effective.hash'?: string | undefined; 'user.effective.id'?: string | undefined; 'user.effective.name'?: string | undefined; 'user.effective.roles'?: string[] | undefined; 'user.email'?: string | undefined; 'user.full_name'?: string | undefined; 'user.group.domain'?: string | undefined; 'user.group.id'?: string | undefined; 'user.group.name'?: string | undefined; 'user.hash'?: string | undefined; 'user.id'?: string | undefined; 'user.name'?: string | undefined; 'user.risk.calculated_level'?: string | undefined; 'user.risk.calculated_score'?: number | undefined; 'user.risk.calculated_score_norm'?: number | undefined; 'user.risk.static_level'?: string | undefined; 'user.risk.static_score'?: number | undefined; 'user.risk.static_score_norm'?: number | undefined; 'user.roles'?: string[] | undefined; 'user.target.domain'?: string | undefined; 'user.target.email'?: string | undefined; 'user.target.full_name'?: string | undefined; 'user.target.group.domain'?: string | undefined; 'user.target.group.id'?: string | undefined; 'user.target.group.name'?: string | undefined; 'user.target.hash'?: string | undefined; 'user.target.id'?: string | undefined; 'user.target.name'?: string | undefined; 'user.target.roles'?: string[] | undefined; 'user_agent.device.name'?: string | undefined; 'user_agent.name'?: string | undefined; 'user_agent.original'?: string | undefined; 'user_agent.os.family'?: string | undefined; 'user_agent.os.full'?: string | undefined; 'user_agent.os.kernel'?: string | undefined; 'user_agent.os.name'?: string | undefined; 'user_agent.os.platform'?: string | undefined; 'user_agent.os.type'?: string | undefined; 'user_agent.os.version'?: string | undefined; 'user_agent.version'?: string | undefined; 'vulnerability.category'?: string[] | undefined; 'vulnerability.classification'?: string | undefined; 'vulnerability.description'?: string | undefined; 'vulnerability.enumeration'?: string | undefined; 'vulnerability.id'?: string | undefined; 'vulnerability.reference'?: string | undefined; 'vulnerability.report_id'?: string | undefined; 'vulnerability.scanner.vendor'?: string | undefined; 'vulnerability.score.base'?: number | undefined; 'vulnerability.score.environmental'?: number | undefined; 'vulnerability.score.temporal'?: number | undefined; 'vulnerability.score.version'?: string | undefined; 'vulnerability.severity'?: string | undefined; } & {} & { 'ecs.version'?: string | undefined; 'kibana.alert.risk_score'?: number | undefined; 'kibana.alert.rule.author'?: string | undefined; 'kibana.alert.rule.created_at'?: string | number | undefined; 'kibana.alert.rule.created_by'?: string | undefined; 'kibana.alert.rule.description'?: string | undefined; 'kibana.alert.rule.enabled'?: string | undefined; 'kibana.alert.rule.from'?: string | undefined; 'kibana.alert.rule.interval'?: string | undefined; 'kibana.alert.rule.license'?: string | undefined; 'kibana.alert.rule.note'?: string | undefined; 'kibana.alert.rule.references'?: string[] | undefined; 'kibana.alert.rule.rule_id'?: string | undefined; 'kibana.alert.rule.rule_name_override'?: string | undefined; 'kibana.alert.rule.to'?: string | undefined; 'kibana.alert.rule.type'?: string | undefined; 'kibana.alert.rule.updated_at'?: string | number | undefined; 'kibana.alert.rule.updated_by'?: string | undefined; 'kibana.alert.rule.version'?: string | undefined; 'kibana.alert.severity'?: string | undefined; 'kibana.alert.suppression.docs_count'?: string | number | undefined; 'kibana.alert.suppression.end'?: string | number | undefined; 'kibana.alert.suppression.start'?: string | number | undefined; 'kibana.alert.suppression.terms.field'?: string[] | undefined; 'kibana.alert.suppression.terms.value'?: string[] | undefined; 'kibana.alert.system_status'?: string | undefined; 'kibana.alert.workflow_reason'?: string | undefined; 'kibana.alert.workflow_status_updated_at'?: string | number | undefined; 'kibana.alert.workflow_user'?: string | undefined; }) | ({ 'kibana.alert.job_id': string; } & { 'kibana.alert.anomaly_score'?: number | undefined; 'kibana.alert.anomaly_timestamp'?: string | number | undefined; 'kibana.alert.is_interim'?: boolean | undefined; 'kibana.alert.top_influencers'?: { influencer_field_name?: string | undefined; influencer_field_value?: string | undefined; influencer_score?: number | undefined; initial_influencer_score?: number | undefined; is_interim?: boolean | undefined; job_id?: string | undefined; timestamp?: string | number | undefined; }[] | undefined; 'kibana.alert.top_records'?: { actual?: number | undefined; by_field_name?: string | undefined; by_field_value?: string | undefined; detector_index?: number | undefined; field_name?: string | undefined; function?: string | undefined; initial_record_score?: number | undefined; is_interim?: boolean | undefined; job_id?: string | undefined; over_field_name?: string | undefined; over_field_value?: string | undefined; partition_field_name?: string | undefined; partition_field_value?: string | undefined; record_score?: number | undefined; timestamp?: string | number | undefined; typical?: number | undefined; }[] | undefined; } & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; })" ], "path": "packages/kbn-alerts-as-data-utils/src/schemas/index.ts", "deprecated": false, @@ -256,6 +256,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/alerts-as-data-utils", + "id": "def-common.DefaultAlert", + "type": "Type", + "tags": [], + "label": "DefaultAlert", + "description": [], + "signature": [ + "{} & {} & { '@timestamp': string | number; 'kibana.alert.instance.id': string; 'kibana.alert.rule.category': string; 'kibana.alert.rule.consumer': string; 'kibana.alert.rule.name': string; 'kibana.alert.rule.producer': string; 'kibana.alert.rule.revision': string | number; 'kibana.alert.rule.rule_type_id': string; 'kibana.alert.rule.uuid': string; 'kibana.alert.status': string; 'kibana.alert.uuid': string; 'kibana.space_ids': string[]; } & { 'event.action'?: string | undefined; 'event.kind'?: string | undefined; 'kibana.alert.action_group'?: string | undefined; 'kibana.alert.case_ids'?: string[] | undefined; 'kibana.alert.duration.us'?: string | number | undefined; 'kibana.alert.end'?: string | number | undefined; 'kibana.alert.flapping'?: boolean | undefined; 'kibana.alert.flapping_history'?: boolean[] | undefined; 'kibana.alert.last_detected'?: string | number | undefined; 'kibana.alert.maintenance_window_ids'?: string[] | undefined; 'kibana.alert.reason'?: string | undefined; 'kibana.alert.rule.execution.uuid'?: string | undefined; 'kibana.alert.rule.parameters'?: unknown; 'kibana.alert.rule.tags'?: string[] | undefined; 'kibana.alert.start'?: string | number | undefined; 'kibana.alert.time_range'?: { gte?: string | number | undefined; lte?: string | number | undefined; } | undefined; 'kibana.alert.url'?: string | undefined; 'kibana.alert.workflow_assignee_ids'?: string[] | undefined; 'kibana.alert.workflow_status'?: string | undefined; 'kibana.alert.workflow_tags'?: string[] | undefined; 'kibana.version'?: string | undefined; tags?: string[] | undefined; }" + ], + "path": "packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerts-as-data-utils", "id": "def-common.EcsFieldMap", diff --git a/api_docs/kbn_alerts_as_data_utils.mdx b/api_docs/kbn_alerts_as_data_utils.mdx index 9e2d04708b8dd..c56da12bc3d95 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-as-data-utils'] --- import kbnAlertsAsDataUtilsObj from './kbn_alerts_as_data_utils.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 | |-------------------|-----------|------------------------|-----------------| -| 30 | 0 | 30 | 0 | +| 31 | 0 | 31 | 0 | ## Common diff --git a/api_docs/kbn_alerts_ui_shared.devdocs.json b/api_docs/kbn_alerts_ui_shared.devdocs.json index 10479153f12f6..0a909f1d2f241 100644 --- a/api_docs/kbn_alerts_ui_shared.devdocs.json +++ b/api_docs/kbn_alerts_ui_shared.devdocs.json @@ -52,6 +52,56 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertFieldsTable", + "type": "Function", + "tags": [], + "label": "AlertFieldsTable", + "description": [ + "\nA paginated, filterable table to show alert object fields" + ], + "signature": [ + "React.NamedExoticComponent<", + { + "pluginId": "@kbn/alerts-ui-shared", + "scope": "common", + "docId": "kibKbnAlertsUiSharedPluginApi", + "section": "def-common.AlertFieldsTableProps", + "text": "AlertFieldsTableProps" + }, + "> & { readonly type: ({ alert, fields }: ", + { + "pluginId": "@kbn/alerts-ui-shared", + "scope": "common", + "docId": "kibKbnAlertsUiSharedPluginApi", + "section": "def-common.AlertFieldsTableProps", + "text": "AlertFieldsTableProps" + }, + ") => JSX.Element; }" + ], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertFieldsTable.$1", + "type": "Uncategorized", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "P" + ], + "path": "node_modules/@types/react/index.d.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerts-ui-shared", "id": "def-common.AlertLifecycleStatusBadge", @@ -522,6 +572,41 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.ScrollableFlyoutTabbedContent", + "type": "Function", + "tags": [], + "label": "ScrollableFlyoutTabbedContent", + "description": [], + "signature": [ + "(props: ", + "EuiTabbedContentProps", + ") => JSX.Element" + ], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.ScrollableFlyoutTabbedContent.$1", + "type": "CompoundType", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "EuiTabbedContentProps" + ], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerts-ui-shared", "id": "def-common.useAlertDataView", @@ -679,6 +764,59 @@ } ], "interfaces": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertFieldsTableProps", + "type": "Interface", + "tags": [], + "label": "AlertFieldsTableProps", + "description": [], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertFieldsTableProps.alert", + "type": "CompoundType", + "tags": [], + "label": "alert", + "description": [ + "\nThe raw alert object" + ], + "signature": [ + { + "pluginId": "@kbn/alerting-types", + "scope": "common", + "docId": "kibKbnAlertingTypesPluginApi", + "section": "def-common.BasicFields", + "text": "BasicFields" + }, + " & { \"@timestamp\"?: string[] | undefined; \"event.action\"?: string[] | undefined; tags?: string[] | undefined; kibana?: string[] | undefined; \"kibana.alert.rule.rule_type_id\"?: string[] | undefined; \"kibana.alert.rule.consumer\"?: string[] | undefined; \"kibana.alert.rule.execution.uuid\"?: string[] | undefined; \"kibana.alert.instance.id\"?: string[] | undefined; \"kibana.alert.rule.category\"?: string[] | undefined; \"kibana.alert.rule.name\"?: string[] | undefined; \"kibana.alert.rule.producer\"?: string[] | undefined; \"kibana.alert.rule.uuid\"?: string[] | undefined; \"kibana.alert.status\"?: string[] | undefined; \"kibana.alert.uuid\"?: string[] | undefined; \"kibana.space_ids\"?: string[] | undefined; \"event.kind\"?: string[] | undefined; \"kibana.alert.action_group\"?: string[] | undefined; \"kibana.alert.case_ids\"?: string[] | undefined; \"kibana.alert.duration.us\"?: string[] | undefined; \"kibana.alert.end\"?: string[] | undefined; \"kibana.alert.flapping\"?: string[] | undefined; \"kibana.alert.maintenance_window_ids\"?: string[] | undefined; \"kibana.alert.reason\"?: string[] | undefined; \"kibana.alert.rule.parameters\"?: string[] | undefined; \"kibana.alert.rule.tags\"?: string[] | undefined; \"kibana.alert.start\"?: string[] | undefined; \"kibana.alert.time_range\"?: string[] | undefined; \"kibana.alert.workflow_assignee_ids\"?: string[] | undefined; \"kibana.alert.workflow_status\"?: string[] | undefined; \"kibana.alert.workflow_tags\"?: string[] | undefined; \"kibana.version\"?: string[] | undefined; \"kibana.alert.context\"?: string[] | undefined; \"kibana.alert.evaluation.threshold\"?: string[] | undefined; \"kibana.alert.evaluation.value\"?: string[] | undefined; \"kibana.alert.evaluation.values\"?: string[] | undefined; \"kibana.alert.group\"?: string[] | undefined; \"ecs.version\"?: string[] | undefined; \"kibana.alert.risk_score\"?: string[] | undefined; \"kibana.alert.rule.author\"?: string[] | undefined; \"kibana.alert.rule.created_at\"?: string[] | undefined; \"kibana.alert.rule.created_by\"?: string[] | undefined; \"kibana.alert.rule.description\"?: string[] | undefined; \"kibana.alert.rule.enabled\"?: string[] | undefined; \"kibana.alert.rule.from\"?: string[] | undefined; \"kibana.alert.rule.interval\"?: string[] | undefined; \"kibana.alert.rule.license\"?: string[] | undefined; \"kibana.alert.rule.note\"?: string[] | undefined; \"kibana.alert.rule.references\"?: string[] | undefined; \"kibana.alert.rule.rule_id\"?: string[] | undefined; \"kibana.alert.rule.rule_name_override\"?: string[] | undefined; \"kibana.alert.rule.to\"?: string[] | undefined; \"kibana.alert.rule.type\"?: string[] | undefined; \"kibana.alert.rule.updated_at\"?: string[] | undefined; \"kibana.alert.rule.updated_by\"?: string[] | undefined; \"kibana.alert.rule.version\"?: string[] | undefined; \"kibana.alert.severity\"?: string[] | undefined; \"kibana.alert.suppression.docs_count\"?: string[] | undefined; \"kibana.alert.suppression.end\"?: string[] | undefined; \"kibana.alert.suppression.start\"?: string[] | undefined; \"kibana.alert.suppression.terms.field\"?: string[] | undefined; \"kibana.alert.suppression.terms.value\"?: string[] | undefined; \"kibana.alert.system_status\"?: string[] | undefined; \"kibana.alert.workflow_reason\"?: string[] | undefined; \"kibana.alert.workflow_user\"?: string[] | undefined; \"event.module\"?: string[] | undefined; \"kibana.alert.rule.threat.framework\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.id\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.name\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.reference\"?: string[] | undefined; \"kibana.alert.building_block_type\"?: string[] | undefined; \"kibana.alert\"?: string[] | undefined; \"kibana.alert.group.field\"?: string[] | undefined; \"kibana.alert.group.value\"?: string[] | undefined; \"kibana.alert.rule\"?: string[] | undefined; \"kibana.alert.rule.exceptions_list\"?: string[] | undefined; \"kibana.alert.rule.namespace\"?: string[] | undefined; \"kibana.alert.suppression.terms\"?: string[] | undefined; } & { [x: string]: unknown[]; }" + ], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.AlertFieldsTableProps.fields", + "type": "Array", + "tags": [], + "label": "fields", + "description": [ + "\nA list of alert field keys to be shown in the table.\nWhen not defined, all the fields are shown." + ], + "signature": [ + "(string | number)[] | undefined" + ], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/alerts-ui-shared", "id": "def-common.AlertLifecycleStatusBadgeProps", @@ -1323,7 +1461,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise; fieldArrayToMap: (fields: ", + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise; fieldArrayToMap: (fields: ", { "pluginId": "dataViews", "scope": "common", @@ -1616,7 +1754,7 @@ "section": "def-common.DataView", "text": "DataView" }, - ", displayErrors?: boolean) => Promise; fieldArrayToMap: (fields: ", + ", displayErrors?: boolean, forceRefresh?: boolean) => Promise; fieldArrayToMap: (fields: ", { "pluginId": "dataViews", "scope": "common", @@ -1994,6 +2132,67 @@ ], "enums": [], "misc": [], - "objects": [] + "objects": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.search", + "type": "Object", + "tags": [], + "label": "search", + "description": [], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.search.box", + "type": "Object", + "tags": [], + "label": "box", + "description": [], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.search.box.incremental", + "type": "boolean", + "tags": [], + "label": "incremental", + "description": [], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.search.box.placeholder", + "type": "string", + "tags": [], + "label": "placeholder", + "description": [], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/alerts-ui-shared", + "id": "def-common.search.box.schema", + "type": "boolean", + "tags": [], + "label": "schema", + "description": [], + "path": "packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "initialIsOpen": false + } + ] } } \ No newline at end of file diff --git a/api_docs/kbn_alerts_ui_shared.mdx b/api_docs/kbn_alerts_ui_shared.mdx index b835cdf345430..dce4a6471d42a 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/alerts-ui-shared'] --- import kbnAlertsUiSharedObj from './kbn_alerts_ui_shared.devdocs.json'; @@ -21,10 +21,13 @@ Contact [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-o | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 83 | 0 | 82 | 1 | +| 95 | 0 | 90 | 1 | ## Common +### Objects + + ### Functions diff --git a/api_docs/kbn_analytics.mdx b/api_docs/kbn_analytics.mdx index bb47843b82e3e..5c4292579e505 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics'] --- import kbnAnalyticsObj from './kbn_analytics.devdocs.json'; diff --git a/api_docs/kbn_analytics_client.devdocs.json b/api_docs/kbn_analytics_client.devdocs.json index d38ac3ecd03eb..261645b9b0e78 100644 --- a/api_docs/kbn_analytics_client.devdocs.json +++ b/api_docs/kbn_analytics_client.devdocs.json @@ -750,18 +750,6 @@ "plugin": "elasticAssistant", "path": "x-pack/plugins/elastic_assistant/server/lib/langchain/elasticsearch_store/elasticsearch_store.ts" }, - { - "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts" - }, - { - "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts" - }, - { - "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/routes/post_actions_connector_execute.ts" - }, { "plugin": "globalSearchBar", "path": "x-pack/plugins/global_search_bar/public/telemetry/event_reporter.ts" @@ -890,6 +878,18 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/common/lib/telemetry/telemetry_client.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/common/lib/telemetry/telemetry_client.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/common/lib/telemetry/telemetry_client.ts" + }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/public/common/lib/telemetry/telemetry_client.ts" + }, { "plugin": "observabilityAIAssistant", "path": "x-pack/plugins/observability_ai_assistant/public/service/create_chat_service.test.ts" diff --git a/api_docs/kbn_analytics_client.mdx b/api_docs/kbn_analytics_client.mdx index 3b5f66fe191c9..d694a3f8f3ba9 100644 --- a/api_docs/kbn_analytics_client.mdx +++ b/api_docs/kbn_analytics_client.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-client title: "@kbn/analytics-client" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-client plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-client'] --- import kbnAnalyticsClientObj from './kbn_analytics_client.devdocs.json'; diff --git a/api_docs/kbn_analytics_collection_utils.mdx b/api_docs/kbn_analytics_collection_utils.mdx index a5ebd4cabb524..8fed0d52abc50 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-collection-utils'] --- import kbnAnalyticsCollectionUtilsObj from './kbn_analytics_collection_utils.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx index 4ad36ce3266e0..78679e4f8edd3 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_browser.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-browser title: "@kbn/analytics-shippers-elastic-v3-browser" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-browser plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-browser'] --- import kbnAnalyticsShippersElasticV3BrowserObj from './kbn_analytics_shippers_elastic_v3_browser.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx index 2f441677caed3..3d117b605e41c 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_common.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-common title: "@kbn/analytics-shippers-elastic-v3-common" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-common plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-common'] --- import kbnAnalyticsShippersElasticV3CommonObj from './kbn_analytics_shippers_elastic_v3_common.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx index 6d37607eb3780..8e51ce6c91a4b 100644 --- a/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx +++ b/api_docs/kbn_analytics_shippers_elastic_v3_server.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-elastic-v3-server title: "@kbn/analytics-shippers-elastic-v3-server" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-elastic-v3-server plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-elastic-v3-server'] --- import kbnAnalyticsShippersElasticV3ServerObj from './kbn_analytics_shippers_elastic_v3_server.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_fullstory.mdx b/api_docs/kbn_analytics_shippers_fullstory.mdx index dbf2ed50486ea..5a24aa593a393 100644 --- a/api_docs/kbn_analytics_shippers_fullstory.mdx +++ b/api_docs/kbn_analytics_shippers_fullstory.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-analytics-shippers-fullstory title: "@kbn/analytics-shippers-fullstory" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/analytics-shippers-fullstory plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-fullstory'] --- import kbnAnalyticsShippersFullstoryObj from './kbn_analytics_shippers_fullstory.devdocs.json'; diff --git a/api_docs/kbn_analytics_shippers_gainsight.devdocs.json b/api_docs/kbn_analytics_shippers_gainsight.devdocs.json deleted file mode 100644 index b9be131348a0a..0000000000000 --- a/api_docs/kbn_analytics_shippers_gainsight.devdocs.json +++ /dev/null @@ -1,386 +0,0 @@ -{ - "id": "@kbn/analytics-shippers-gainsight", - "client": { - "classes": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper", - "type": "Class", - "tags": [], - "label": "GainsightShipper", - "description": [ - "\ngainsight shipper." - ], - "signature": [ - { - "pluginId": "@kbn/analytics-shippers-gainsight", - "scope": "public", - "docId": "kibKbnAnalyticsShippersGainsightPluginApi", - "section": "def-public.GainsightShipper", - "text": "GainsightShipper" - }, - " implements ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.IShipper", - "text": "IShipper" - } - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.shipperName", - "type": "string", - "tags": [], - "label": "shipperName", - "description": [ - "Shipper's unique name" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.Unnamed", - "type": "Function", - "tags": [], - "label": "Constructor", - "description": [ - "\nCreates a new instance of the gainsightShipper." - ], - "signature": [ - "any" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.Unnamed.$1", - "type": "Object", - "tags": [], - "label": "config", - "description": [ - "{@link GainsightSnippetConfig }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-shippers-gainsight", - "scope": "public", - "docId": "kibKbnAnalyticsShippersGainsightPluginApi", - "section": "def-public.GainsightSnippetConfig", - "text": "GainsightSnippetConfig" - } - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.Unnamed.$2", - "type": "Object", - "tags": [], - "label": "initContext", - "description": [ - "{@link AnalyticsClientInitContext }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.AnalyticsClientInitContext", - "text": "AnalyticsClientInitContext" - } - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.extendContext", - "type": "Function", - "tags": [], - "label": "extendContext", - "description": [ - "\nCalls track or set on the fields provided in the newContext." - ], - "signature": [ - "(newContext: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - }, - ") => void" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.extendContext.$1", - "type": "Object", - "tags": [], - "label": "newContext", - "description": [ - "The full new context to set {@link EventContext }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.EventContext", - "text": "EventContext" - } - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.optIn", - "type": "Function", - "tags": [], - "label": "optIn", - "description": [ - "\nStops/restarts the shipping mechanism based on the value of isOptedIn" - ], - "signature": [ - "(isOptedIn: boolean) => void" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.optIn.$1", - "type": "boolean", - "tags": [], - "label": "isOptedIn", - "description": [ - "`true` for resume sending events. `false` to stop." - ], - "signature": [ - "boolean" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.reportEvents", - "type": "Function", - "tags": [], - "label": "reportEvents", - "description": [ - "\nTransforms the event into a valid format and calls `track`." - ], - "signature": [ - "(events: ", - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - ">[]) => void" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.reportEvents.$1", - "type": "Array", - "tags": [], - "label": "events", - "description": [ - "batched events {@link Event }" - ], - "signature": [ - { - "pluginId": "@kbn/analytics-client", - "scope": "common", - "docId": "kibKbnAnalyticsClientPluginApi", - "section": "def-common.Event", - "text": "Event" - }, - ">[]" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.flush", - "type": "Function", - "tags": [], - "label": "flush", - "description": [ - "\nFlushes all internal queues of the shipper.\nIt doesn't really do anything inside because this shipper doesn't hold any internal queues." - ], - "signature": [ - "() => Promise" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightShipper.shutdown", - "type": "Function", - "tags": [], - "label": "shutdown", - "description": [ - "\nShuts down the shipper.\nIt doesn't really do anything inside because this shipper doesn't hold any internal queues." - ], - "signature": [ - "() => void" - ], - "path": "packages/analytics/shippers/gainsight/src/gainsight_shipper.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] - } - ], - "initialIsOpen": false - } - ], - "functions": [], - "interfaces": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig", - "type": "Interface", - "tags": [], - "label": "GainsightSnippetConfig", - "description": [ - "\ngainsight basic configuration." - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig.gainsightOrgId", - "type": "string", - "tags": [], - "label": "gainsightOrgId", - "description": [ - "\nThe gainsight account id." - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig.scriptUrl", - "type": "string", - "tags": [], - "label": "scriptUrl", - "description": [ - "\nThe URL to load the gainsight client from. Falls back to `web-sdk.aptrinsic.com` if not specified." - ], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig.cssFileEndpoint", - "type": "string", - "tags": [], - "label": "cssFileEndpoint", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/analytics-shippers-gainsight", - "id": "def-public.GainsightSnippetConfig.widgetFileEndpoint", - "type": "string", - "tags": [], - "label": "widgetFileEndpoint", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/analytics/shippers/gainsight/src/load_snippet.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "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_analytics_shippers_gainsight.mdx b/api_docs/kbn_analytics_shippers_gainsight.mdx deleted file mode 100644 index 6c2e2085a35e6..0000000000000 --- a/api_docs/kbn_analytics_shippers_gainsight.mdx +++ /dev/null @@ -1,33 +0,0 @@ ---- -#### -#### 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: kibKbnAnalyticsShippersGainsightPluginApi -slug: /kibana-dev-docs/api/kbn-analytics-shippers-gainsight -title: "@kbn/analytics-shippers-gainsight" -image: https://source.unsplash.com/400x175/?github -description: API docs for the @kbn/analytics-shippers-gainsight plugin -date: 2024-01-04 -tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/analytics-shippers-gainsight'] ---- -import kbnAnalyticsShippersGainsightObj from './kbn_analytics_shippers_gainsight.devdocs.json'; - - - -Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) for questions regarding this plugin. - -**Code health stats** - -| Public API count | Any count | Items lacking comments | Missing exports | -|-------------------|-----------|------------------------|-----------------| -| 18 | 0 | 2 | 0 | - -## Client - -### Classes - - -### Interfaces - - diff --git a/api_docs/kbn_apm_config_loader.mdx b/api_docs/kbn_apm_config_loader.mdx index 2e4da0de9fffb..eb64dad40f062 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-01-04 +date: 2024-01-25 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_synthtrace.devdocs.json b/api_docs/kbn_apm_synthtrace.devdocs.json index c591fc9fd2533..2d3c49ff1a341 100644 --- a/api_docs/kbn_apm_synthtrace.devdocs.json +++ b/api_docs/kbn_apm_synthtrace.devdocs.json @@ -430,6 +430,145 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.InfraSynthtraceKibanaClient", + "type": "Class", + "tags": [], + "label": "InfraSynthtraceKibanaClient", + "description": [], + "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.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "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.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "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.Unnamed.$1.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + "Logger" + ], + "path": "packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.InfraSynthtraceKibanaClient.Unnamed.$1.target", + "type": "string", + "tags": [], + "label": "target", + "description": [], + "path": "packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.InfraSynthtraceKibanaClient.Unnamed.$1.username", + "type": "string", + "tags": [], + "label": "username", + "description": [], + "path": "packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.InfraSynthtraceKibanaClient.Unnamed.$1.password", + "type": "string", + "tags": [], + "label": "password", + "description": [], + "path": "packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.InfraSynthtraceKibanaClient.fetchLatestSystemPackageVersion", + "type": "Function", + "tags": [], + "label": "fetchLatestSystemPackageVersion", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/apm-synthtrace", + "id": "def-server.InfraSynthtraceKibanaClient.installSystemPackage", + "type": "Function", + "tags": [], + "label": "installSystemPackage", + "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.installSystemPackage.$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 + }, { "parentPluginId": "@kbn/apm-synthtrace", "id": "def-server.LogsSynthtraceEsClient", diff --git a/api_docs/kbn_apm_synthtrace.mdx b/api_docs/kbn_apm_synthtrace.mdx index 08be197d2f328..821eb9f10c263 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 34 | 0 | 34 | 8 | +| 44 | 0 | 44 | 8 | ## Server diff --git a/api_docs/kbn_apm_synthtrace_client.devdocs.json b/api_docs/kbn_apm_synthtrace_client.devdocs.json index ed09a5e431a2f..c74ee88ada681 100644 --- a/api_docs/kbn_apm_synthtrace_client.devdocs.json +++ b/api_docs/kbn_apm_synthtrace_client.devdocs.json @@ -2608,7 +2608,7 @@ "label": "LogDocument", "description": [], "signature": [ - "{ '@timestamp'?: number | undefined; } & Partial<{ 'input.type': string; 'log.file.path'?: string | undefined; 'service.name'?: string | undefined; 'data_stream.namespace': string; 'data_stream.type': string; 'data_stream.dataset': string; message?: string | undefined; 'event.dataset': string; 'log.level'?: string | undefined; 'host.name'?: string | undefined; 'trace.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; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.instance.id'?: string | undefined; }>" + "{ '@timestamp'?: number | undefined; } & Partial<{ 'input.type': string; 'log.file.path'?: string | undefined; 'service.name'?: 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; 'trace.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; 'cloud.provider'?: string | undefined; 'cloud.region'?: string | undefined; 'cloud.availability_zone'?: string | undefined; 'cloud.project.id'?: string | undefined; 'cloud.instance.id'?: string | undefined; }>" ], "path": "packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts", "deprecated": false, diff --git a/api_docs/kbn_apm_synthtrace_client.mdx b/api_docs/kbn_apm_synthtrace_client.mdx index 57f76574a6a01..149f30b14ae84 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-synthtrace-client'] --- import kbnApmSynthtraceClientObj from './kbn_apm_synthtrace_client.devdocs.json'; diff --git a/api_docs/kbn_apm_utils.mdx b/api_docs/kbn_apm_utils.mdx index d4f8acded8bea..0262a1ed9b30e 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/apm-utils'] --- import kbnApmUtilsObj from './kbn_apm_utils.devdocs.json'; diff --git a/api_docs/kbn_axe_config.mdx b/api_docs/kbn_axe_config.mdx index 691cc29eab2b5..fc90735c37b3c 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-01-04 +date: 2024-01-25 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 6ffb7d64aa166..d047275316f9f 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-01-04 +date: 2024-01-25 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 bbcb29ede912a..a064f8350fb20 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-01-04 +date: 2024-01-25 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 168799bba2c8b..7d20bdcbeaaef 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-01-04 +date: 2024-01-25 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 1cb18fc4b85cf..d76fafce5327d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cases-components'] --- import kbnCasesComponentsObj from './kbn_cases_components.devdocs.json'; diff --git a/api_docs/kbn_cell_actions.mdx b/api_docs/kbn_cell_actions.mdx index af7a6aec2f060..7d540b9b6d6b5 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_chart_expressions_common.devdocs.json index de54c17861fdd..a86e37814a6fa 100644 --- a/api_docs/kbn_chart_expressions_common.devdocs.json +++ b/api_docs/kbn_chart_expressions_common.devdocs.json @@ -236,6 +236,53 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.isChartSizeEvent", + "type": "Function", + "tags": [], + "label": "isChartSizeEvent", + "description": [], + "signature": [ + "(event: ", + { + "pluginId": "expressions", + "scope": "public", + "docId": "kibExpressionsPluginApi", + "section": "def-public.ExpressionRendererEvent", + "text": "ExpressionRendererEvent" + }, + ") => boolean" + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.isChartSizeEvent.$1", + "type": "Object", + "tags": [], + "label": "event", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "public", + "docId": "kibExpressionsPluginApi", + "section": "def-public.ExpressionRendererEvent", + "text": "ExpressionRendererEvent" + } + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/chart-expressions-common", "id": "def-common.isOnAggBasedEditor", @@ -283,9 +330,226 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.useSizeTransitionVeil", + "type": "Function", + "tags": [], + "label": "useSizeTransitionVeil", + "description": [ + "\nThis hook is used to show a veil over the chart while it is being resized\nin response to a change in the container dimensions.\n\nIt is only relevant if client dimensions are being requested based on chart configuration.\n\nThis whole feature is a nice-to-have. If it proves to be a source of bugs,\nwe can consider removing it and accepting the aesthetic drawback." + ], + "signature": [ + "(chartSizeSpec: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.ChartSizeSpec", + "text": "ChartSizeSpec" + }, + ", setChartSize: (d: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.ChartSizeSpec", + "text": "ChartSizeSpec" + }, + ") => void, shouldUseVeil: boolean) => { veil: JSX.Element; onResize: () => void; containerRef: React.RefObject; }" + ], + "path": "src/plugins/chart_expressions/common/chart_size_transition_veil.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.useSizeTransitionVeil.$1", + "type": "Object", + "tags": [], + "label": "chartSizeSpec", + "description": [], + "signature": [ + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.ChartSizeSpec", + "text": "ChartSizeSpec" + } + ], + "path": "src/plugins/chart_expressions/common/chart_size_transition_veil.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.useSizeTransitionVeil.$2", + "type": "Function", + "tags": [], + "label": "setChartSize", + "description": [], + "signature": [ + "(d: ", + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.ChartSizeSpec", + "text": "ChartSizeSpec" + }, + ") => void" + ], + "path": "src/plugins/chart_expressions/common/chart_size_transition_veil.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.useSizeTransitionVeil.$3", + "type": "boolean", + "tags": [], + "label": "shouldUseVeil", + "description": [], + "signature": [ + "boolean" + ], + "path": "src/plugins/chart_expressions/common/chart_size_transition_veil.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.ChartSizeEvent", + "type": "Interface", + "tags": [], + "label": "ChartSizeEvent", + "description": [], + "signature": [ + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.ChartSizeEvent", + "text": "ChartSizeEvent" + }, + " extends ", + { + "pluginId": "expressions", + "scope": "public", + "docId": "kibExpressionsPluginApi", + "section": "def-public.ExpressionRendererEvent", + "text": "ExpressionRendererEvent" + } + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.ChartSizeEvent.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "\"chartSize\"" + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.ChartSizeEvent.data", + "type": "Object", + "tags": [], + "label": "data", + "description": [], + "signature": [ + { + "pluginId": "@kbn/chart-expressions-common", + "scope": "common", + "docId": "kibKbnChartExpressionsCommonPluginApi", + "section": "def-common.ChartSizeSpec", + "text": "ChartSizeSpec" + } + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.ChartSizeSpec", + "type": "Interface", + "tags": [], + "label": "ChartSizeSpec", + "description": [], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.ChartSizeSpec.maxDimensions", + "type": "Object", + "tags": [], + "label": "maxDimensions", + "description": [], + "signature": [ + "ChartSizeDimensions | undefined" + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.ChartSizeSpec.minDimensions", + "type": "Object", + "tags": [], + "label": "minDimensions", + "description": [], + "signature": [ + "ChartSizeDimensions | undefined" + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/chart-expressions-common", + "id": "def-common.ChartSizeSpec.aspectRatio", + "type": "Object", + "tags": [], + "label": "aspectRatio", + "description": [], + "signature": [ + "{ x: number; y: number; } | undefined" + ], + "path": "src/plugins/chart_expressions/common/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], - "interfaces": [], "enums": [], "misc": [ { diff --git a/api_docs/kbn_chart_expressions_common.mdx b/api_docs/kbn_chart_expressions_common.mdx index 8709c69a78d2b..23ad71c097e91 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/chart-expressions-common'] --- import kbnChartExpressionsCommonObj from './kbn_chart_expressions_common.devdocs.json'; @@ -21,13 +21,16 @@ Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/k | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 14 | 0 | 10 | 0 | +| 27 | 0 | 22 | 0 | ## Common ### Functions +### Interfaces + + ### Consts, variables and types diff --git a/api_docs/kbn_chart_icons.mdx b/api_docs/kbn_chart_icons.mdx index f3d78c78a2774..db669c1d58f77 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-01-04 +date: 2024-01-25 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 fd14fa1f9cc05..583dcccf12d26 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-01-04 +date: 2024-01-25 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 c5160318f3046..8ac940fdbac8b 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-01-04 +date: 2024-01-25 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 6b5d8e5811c66..94514acb4f6ba 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-01-04 +date: 2024-01-25 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 c25eb3b034f9a..86e9f7ad230d0 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_code_editor.devdocs.json index 60e213c0c2768..31ae179a716b2 100644 --- a/api_docs/kbn_code_editor.devdocs.json +++ b/api_docs/kbn_code_editor.devdocs.json @@ -23,11 +23,15 @@ "parentPluginId": "@kbn/code-editor", "id": "def-common.CodeEditor", "type": "Function", - "tags": [], + "tags": [ + "see" + ], "label": "CodeEditor", - "description": [], + "description": [ + "\nRenders a Monaco code editor with EUI color theme.\n" + ], "signature": [ - "({ languageId, value, onChange, width, height, options, overrideEditorWillMount, editorDidMount, editorWillMount, useDarkTheme: useDarkThemeProp, transparentBackground, suggestionProvider, signatureProvider, hoverProvider, placeholder, languageConfiguration, \"aria-label\": ariaLabel, isCopyable, allowFullScreen, }: React.PropsWithChildren<", + "(props: React.PropsWithChildren<", { "pluginId": "@kbn/code-editor", "scope": "common", @@ -37,7 +41,7 @@ }, ">) => JSX.Element" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/index.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -46,7 +50,7 @@ "id": "def-common.CodeEditor.$1", "type": "CompoundType", "tags": [], - "label": "{\n languageId,\n value,\n onChange,\n width,\n height,\n options,\n overrideEditorWillMount,\n editorDidMount,\n editorWillMount,\n useDarkTheme: useDarkThemeProp,\n transparentBackground,\n suggestionProvider,\n signatureProvider,\n hoverProvider,\n placeholder,\n languageConfiguration,\n 'aria-label': ariaLabel = i18n.translate('sharedUXPackages.codeEditor.ariaLabel', {\n defaultMessage: 'Code Editor',\n }),\n isCopyable = false,\n allowFullScreen = false,\n}", + "label": "props", "description": [], "signature": [ "React.PropsWithChildren<", @@ -59,7 +63,58 @@ }, ">" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/index.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/code-editor", + "id": "def-common.CodeEditorField", + "type": "Function", + "tags": [], + "label": "CodeEditorField", + "description": [ + "\nRenders a Monaco code editor in the same style as other EUI form fields." + ], + "signature": [ + "(props: React.PropsWithChildren<", + { + "pluginId": "@kbn/code-editor", + "scope": "common", + "docId": "kibKbnCodeEditorPluginApi", + "section": "def-common.CodeEditorProps", + "text": "CodeEditorProps" + }, + ">) => JSX.Element" + ], + "path": "packages/shared-ux/code_editor/impl/index.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/code-editor", + "id": "def-common.CodeEditorField.$1", + "type": "CompoundType", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "React.PropsWithChildren<", + { + "pluginId": "@kbn/code-editor", + "scope": "common", + "docId": "kibKbnCodeEditorPluginApi", + "section": "def-common.CodeEditorProps", + "text": "CodeEditorProps" + }, + ">" + ], + "path": "packages/shared-ux/code_editor/impl/index.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -77,7 +132,7 @@ "tags": [], "label": "CodeEditorProps", "description": [], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -93,7 +148,7 @@ "signature": [ "string | number | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -109,7 +164,7 @@ "signature": [ "string | number | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -122,7 +177,7 @@ "description": [ "ID of the editor language" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -135,7 +190,7 @@ "description": [ "Value of the editor" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -153,7 +208,7 @@ "editor", ".IModelContentChangedEvent) => void) | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -167,7 +222,7 @@ "signature": [ "string" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -183,7 +238,7 @@ "editor", ".IModelContentChangedEvent" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -204,7 +259,7 @@ "editor", ".IStandaloneEditorConstructionOptions | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -221,7 +276,7 @@ "languages", ".CompletionItemProvider | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -238,7 +293,7 @@ "languages", ".SignatureHelpProvider | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -255,7 +310,7 @@ "languages", ".HoverProvider | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -272,7 +327,7 @@ "languages", ".LanguageConfiguration | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -288,7 +343,7 @@ "signature": [ "(() => void) | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -306,7 +361,7 @@ "signature": [ "(() => void) | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false, "children": [], @@ -326,7 +381,7 @@ "editor", ".IStandaloneCodeEditor) => void) | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false, "children": [ @@ -341,7 +396,7 @@ "editor", ".IStandaloneCodeEditor" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false, "isRequired": true @@ -361,7 +416,7 @@ "signature": [ "boolean | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -377,7 +432,7 @@ "signature": [ "boolean | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -393,7 +448,7 @@ "signature": [ "boolean | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -407,7 +462,7 @@ "signature": [ "string | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -423,7 +478,7 @@ "signature": [ "string | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -437,7 +492,7 @@ "signature": [ "boolean | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false }, @@ -451,7 +506,7 @@ "signature": [ "boolean | undefined" ], - "path": "packages/shared-ux/code_editor/code_editor.tsx", + "path": "packages/shared-ux/code_editor/impl/code_editor.tsx", "deprecated": false, "trackAdoption": false } @@ -460,7 +515,98 @@ } ], "enums": [], - "misc": [], + "misc": [ + { + "parentPluginId": "@kbn/code-editor", + "id": "def-common.LANG", + "type": "string", + "tags": [], + "label": "LANG", + "description": [], + "signature": [ + "\"css\"" + ], + "path": "packages/shared-ux/code_editor/impl/languages/css/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/code-editor", + "id": "def-common.LANG", + "type": "string", + "tags": [], + "label": "LANG", + "description": [], + "signature": [ + "\"markdown\"" + ], + "path": "packages/shared-ux/code_editor/impl/languages/markdown/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/code-editor", + "id": "def-common.LANG", + "type": "string", + "tags": [], + "label": "LANG", + "description": [], + "signature": [ + "\"yaml\"" + ], + "path": "packages/shared-ux/code_editor/impl/languages/yaml/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/code-editor", + "id": "def-common.LANG", + "type": "string", + "tags": [], + "label": "LANG", + "description": [], + "signature": [ + "\"handlebars\"" + ], + "path": "packages/shared-ux/code_editor/impl/languages/handlebars/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/code-editor", + "id": "def-common.LANG", + "type": "string", + "tags": [], + "label": "LANG", + "description": [], + "signature": [ + "\"hjson\"" + ], + "path": "packages/shared-ux/code_editor/impl/languages/hjson/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/code-editor", + "id": "def-common.LANG", + "type": "string", + "tags": [], + "label": "LANG", + "description": [], + "signature": [ + "\"grok\"" + ], + "path": "packages/shared-ux/code_editor/impl/languages/grok/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "objects": [] } } \ No newline at end of file diff --git a/api_docs/kbn_code_editor.mdx b/api_docs/kbn_code_editor.mdx index b1faf78313c5d..f73267b5f0621 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor'] --- import kbnCodeEditorObj from './kbn_code_editor.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 | |-------------------|-----------|------------------------|-----------------| -| 26 | 0 | 9 | 0 | +| 34 | 0 | 15 | 0 | ## Common @@ -31,3 +31,6 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh ### Interfaces +### Consts, variables and types + + diff --git a/api_docs/kbn_code_editor_mock.devdocs.json b/api_docs/kbn_code_editor_mock.devdocs.json new file mode 100644 index 0000000000000..76bcd112443c1 --- /dev/null +++ b/api_docs/kbn_code_editor_mock.devdocs.json @@ -0,0 +1,64 @@ +{ + "id": "@kbn/code-editor-mock", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/code-editor-mock", + "id": "def-common.MockedCodeEditor", + "type": "Function", + "tags": [], + "label": "MockedCodeEditor", + "description": [], + "signature": [ + "(props: ", + "MonacoEditorProps", + " & { \"data-test-subj\"?: string | undefined; }) => JSX.Element" + ], + "path": "packages/shared-ux/code_editor/mocks/code_editor_mock.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/code-editor-mock", + "id": "def-common.MockedCodeEditor.$1", + "type": "CompoundType", + "tags": [], + "label": "props", + "description": [], + "signature": [ + "MonacoEditorProps", + " & { \"data-test-subj\"?: string | undefined; }" + ], + "path": "packages/shared-ux/code_editor/mocks/code_editor_mock.tsx", + "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_code_editor_mock.mdx b/api_docs/kbn_code_editor_mock.mdx new file mode 100644 index 0000000000000..bab3c23a70831 --- /dev/null +++ b/api_docs/kbn_code_editor_mock.mdx @@ -0,0 +1,30 @@ +--- +#### +#### 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: kibKbnCodeEditorMockPluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-editor-mock'] +--- +import kbnCodeEditorMockObj from './kbn_code_editor_mock.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 | +|-------------------|-----------|------------------------|-----------------| +| 2 | 0 | 2 | 0 | + +## Common + +### Functions + + diff --git a/api_docs/kbn_code_owners.mdx b/api_docs/kbn_code_owners.mdx index 45c2f1eec850e..bde3d496e942c 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/code-owners'] --- import kbnCodeOwnersObj from './kbn_code_owners.devdocs.json'; diff --git a/api_docs/kbn_coloring.devdocs.json b/api_docs/kbn_coloring.devdocs.json index b0529f8c10179..b16ebabd965d3 100644 --- a/api_docs/kbn_coloring.devdocs.json +++ b/api_docs/kbn_coloring.devdocs.json @@ -57,7 +57,7 @@ "label": "store", "description": [], "signature": [ - "EnhancedStore", + "ToolkitStore", "<{ colorMapping: ", "Config", "; }, ", diff --git a/api_docs/kbn_coloring.mdx b/api_docs/kbn_coloring.mdx index 016a50f4eed68..ab9f94ea244c4 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-01-04 +date: 2024-01-25 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 92e2a6e6a98db..93646e6515d5a 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-01-04 +date: 2024-01-25 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 538b978f01f67..4ea463c2de763 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-mocks'] --- import kbnConfigMocksObj from './kbn_config_mocks.devdocs.json'; diff --git a/api_docs/kbn_config_schema.mdx b/api_docs/kbn_config_schema.mdx index 7a11d031669b2..d40a17d6b839e 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/config-schema'] --- import kbnConfigSchemaObj from './kbn_config_schema.devdocs.json'; diff --git a/api_docs/kbn_content_management_content_editor.mdx b/api_docs/kbn_content_management_content_editor.mdx index a01fcd538b274..f35e07201e15d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-content-editor'] --- import kbnContentManagementContentEditorObj from './kbn_content_management_content_editor.devdocs.json'; diff --git a/api_docs/kbn_content_management_tabbed_table_list_view.mdx b/api_docs/kbn_content_management_tabbed_table_list_view.mdx index ab99b334698e8..b8c16b989a85a 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-01-04 +date: 2024-01-25 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 ac36b039e2e28..38c99fe20f1cd 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-01-04 +date: 2024-01-25 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 ba7e057ea4c5e..814df6f24f021 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-common'] --- import kbnContentManagementTableListViewCommonObj from './kbn_content_management_table_list_view_common.devdocs.json'; diff --git a/api_docs/kbn_content_management_table_list_view_table.mdx b/api_docs/kbn_content_management_table_list_view_table.mdx index 4eb648daed693..853418301e333 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-table-list-view-table'] --- import kbnContentManagementTableListViewTableObj from './kbn_content_management_table_list_view_table.devdocs.json'; diff --git a/api_docs/kbn_content_management_utils.mdx b/api_docs/kbn_content_management_utils.mdx index b93c28f3f242f..6e814cd21cece 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/content-management-utils'] --- import kbnContentManagementUtilsObj from './kbn_content_management_utils.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_browser.mdx b/api_docs/kbn_core_analytics_browser.mdx index 5d321c806dae1..8b61551eb1c69 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-01-04 +date: 2024-01-25 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 1f543f4bf84ce..d26ceebff7f75 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-01-04 +date: 2024-01-25 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 2705851553d33..b132bcc236bfc 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-analytics-browser-mocks'] --- import kbnCoreAnalyticsBrowserMocksObj from './kbn_core_analytics_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_analytics_server.mdx b/api_docs/kbn_core_analytics_server.mdx index 7c3743c1dbd8c..0a428521cfac1 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-01-04 +date: 2024-01-25 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 3e4b93af573ae..eb24f1c8ab835 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-01-04 +date: 2024-01-25 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 13fddb27bcd44..ce525c27c4169 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-01-04 +date: 2024-01-25 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 79983ab12c2e4..76acf7e1d61c7 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-01-04 +date: 2024-01-25 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 c96835fd136f4..092ce2e40df92 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-01-04 +date: 2024-01-25 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 0d0d8e97c742e..a7a2bbd29db7f 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-01-04 +date: 2024-01-25 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 8448a8305a7e5..2f5c5e6740614 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-01-04 +date: 2024-01-25 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 9723b65a44983..047b258fdedf7 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-01-04 +date: 2024-01-25 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 596f3e1409ae3..77f6abceec47b 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-01-04 +date: 2024-01-25 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 d271d9e001764..dfb1f3e1bc3af 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-01-04 +date: 2024-01-25 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 67397822cc15e..629c1cd06543a 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-01-04 +date: 2024-01-25 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 96261af6de97b..51d7833d36133 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-01-04 +date: 2024-01-25 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 690927a8f239f..116c33982235d 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-01-04 +date: 2024-01-25 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 acdf0cea09385..bed8c67971179 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-01-04 +date: 2024-01-25 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 05311bbc8df07..9fc696408db0b 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-01-04 +date: 2024-01-25 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 b394f4e578b45..ea07c07c47e66 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-01-04 +date: 2024-01-25 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 04e0c62d9deaf..807ba7bd21be9 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-01-04 +date: 2024-01-25 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 4b249f1bff217..80895745b0a66 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-01-04 +date: 2024-01-25 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 84be089b48632..f34b346af15c5 100644 --- a/api_docs/kbn_core_chrome_browser.devdocs.json +++ b/api_docs/kbn_core_chrome_browser.devdocs.json @@ -1507,43 +1507,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/core-chrome-browser", - "id": "def-common.ChromeProjectNavigation", - "type": "Interface", - "tags": [], - "label": "ChromeProjectNavigation", - "description": [], - "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/core-chrome-browser", - "id": "def-common.ChromeProjectNavigation.navigationTree", - "type": "Array", - "tags": [], - "label": "navigationTree", - "description": [ - "\nThe navigation tree representation of the side bar navigation." - ], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeProjectNavigationNode", - "text": "ChromeProjectNavigationNode" - }, - "[]" - ], - "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/core-chrome-browser", "id": "def-common.ChromeProjectNavigationNode", @@ -2865,6 +2828,369 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudLink", + "type": "Interface", + "tags": [], + "label": "CloudLink", + "description": [], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudLink.title", + "type": "string", + "tags": [], + "label": "title", + "description": [], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudLink.href", + "type": "string", + "tags": [], + "label": "href", + "description": [], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudURLs", + "type": "Interface", + "tags": [], + "label": "CloudURLs", + "description": [], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudURLs.billingUrl", + "type": "string", + "tags": [], + "label": "billingUrl", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudURLs.deploymentUrl", + "type": "string", + "tags": [], + "label": "deploymentUrl", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudURLs.performanceUrl", + "type": "string", + "tags": [], + "label": "performanceUrl", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudURLs.usersAndRolesUrl", + "type": "string", + "tags": [], + "label": "usersAndRolesUrl", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.GroupDefinition", + "type": "Interface", + "tags": [], + "label": "GroupDefinition", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.GroupDefinition", + "text": "GroupDefinition" + }, + " extends Omit<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.NodeDefinition", + "text": "NodeDefinition" + }, + ", \"children\">" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.GroupDefinition.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"navGroup\"" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.GroupDefinition.children", + "type": "Array", + "tags": [], + "label": "children", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.NodeDefinition", + "text": "NodeDefinition" + }, + "[]" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.ItemDefinition", + "type": "Interface", + "tags": [], + "label": "ItemDefinition", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ItemDefinition", + "text": "ItemDefinition" + }, + " extends Omit<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.NodeDefinition", + "text": "NodeDefinition" + }, + ", \"children\">" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.ItemDefinition.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"navItem\"" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.NavigationTreeDefinition", + "type": "Interface", + "tags": [], + "label": "NavigationTreeDefinition", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.NavigationTreeDefinition", + "text": "NavigationTreeDefinition" + }, + "" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.NavigationTreeDefinition.body", + "type": "Array", + "tags": [], + "label": "body", + "description": [ + "\nMain content of the navigation. Can contain any number of \"cloudLink\", \"recentlyAccessed\"\nor \"group\" items." + ], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.RootNavigationItemDefinition", + "text": "RootNavigationItemDefinition" + }, + "[]" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.NavigationTreeDefinition.footer", + "type": "Array", + "tags": [], + "label": "footer", + "description": [ + "\nFooter content of the navigation. Can contain any number of \"cloudLink\", \"recentlyAccessed\"\nor \"group\" items." + ], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.RootNavigationItemDefinition", + "text": "RootNavigationItemDefinition" + }, + "[] | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.NavigationTreeDefinitionUI", + "type": "Interface", + "tags": [], + "label": "NavigationTreeDefinitionUI", + "description": [], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.NavigationTreeDefinitionUI.body", + "type": "Array", + "tags": [], + "label": "body", + "description": [], + "signature": [ + "(", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeProjectNavigationNode", + "text": "ChromeProjectNavigationNode" + }, + " | ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.RecentlyAccessedDefinition", + "text": "RecentlyAccessedDefinition" + }, + ")[]" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.NavigationTreeDefinitionUI.footer", + "type": "Array", + "tags": [], + "label": "footer", + "description": [], + "signature": [ + "(", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeProjectNavigationNode", + "text": "ChromeProjectNavigationNode" + }, + " | ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.RecentlyAccessedDefinition", + "text": "RecentlyAccessedDefinition" + }, + ")[] | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-chrome-browser", "id": "def-common.NodeDefinition", @@ -2983,6 +3309,137 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.PresetDefinition", + "type": "Interface", + "tags": [], + "label": "PresetDefinition", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.PresetDefinition", + "text": "PresetDefinition" + }, + " extends Omit<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.GroupDefinition", + "text": "GroupDefinition" + }, + ", \"type\" | \"children\">" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.PresetDefinition.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"preset\"" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.PresetDefinition.preset", + "type": "CompoundType", + "tags": [], + "label": "preset", + "description": [], + "signature": [ + "\"ml\" | \"management\" | \"analytics\" | \"devtools\"" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.RecentlyAccessedDefinition", + "type": "Interface", + "tags": [], + "label": "RecentlyAccessedDefinition", + "description": [], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.RecentlyAccessedDefinition.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"recentlyAccessed\"" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.RecentlyAccessedDefinition.recentlyAccessed$", + "type": "Object", + "tags": [], + "label": "recentlyAccessed$", + "description": [ + "\nOptional observable for recently accessed items. If not provided, the\nrecently items from the Chrome service will be used." + ], + "signature": [ + "Observable", + "<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeRecentlyAccessedHistoryItem", + "text": "ChromeRecentlyAccessedHistoryItem" + }, + "[]> | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.RecentlyAccessedDefinition.defaultIsCollapsed", + "type": "CompoundType", + "tags": [ + "default" + ], + "label": "defaultIsCollapsed", + "description": [ + "\nIf true, the recently accessed list will be collapsed by default." + ], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-chrome-browser", "id": "def-common.SideNavCompProps", @@ -3233,6 +3690,53 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.CloudLinks", + "type": "Type", + "tags": [], + "label": "CloudLinks", + "description": [], + "signature": [ + "{ userAndRoles?: ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.CloudLink", + "text": "CloudLink" + }, + " | undefined; performance?: ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.CloudLink", + "text": "CloudLink" + }, + " | undefined; billingAndSub?: ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.CloudLink", + "text": "CloudLink" + }, + " | undefined; deployment?: ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.CloudLink", + "text": "CloudLink" + }, + " | undefined; }" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-chrome-browser", "id": "def-common.EuiThemeSize", @@ -3248,6 +3752,23 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.NavigationGroupPreset", + "type": "Type", + "tags": [], + "label": "NavigationGroupPreset", + "description": [ + "The preset that can be pass to the NavigationBucket component" + ], + "signature": [ + "\"ml\" | \"management\" | \"analytics\" | \"devtools\"" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-chrome-browser", "id": "def-common.NodeDefinitionWithChildren", @@ -3293,6 +3814,52 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-chrome-browser", + "id": "def-common.RootNavigationItemDefinition", + "type": "Type", + "tags": [], + "label": "RootNavigationItemDefinition", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.RecentlyAccessedDefinition", + "text": "RecentlyAccessedDefinition" + }, + " | ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.GroupDefinition", + "text": "GroupDefinition" + }, + " | ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.PresetDefinition", + "text": "PresetDefinition" + }, + " | ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ItemDefinition", + "text": "ItemDefinition" + }, + "" + ], + "path": "packages/core/chrome/core-chrome-browser/src/project_navigation.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-chrome-browser", "id": "def-common.SideNavComponent", diff --git a/api_docs/kbn_core_chrome_browser.mdx b/api_docs/kbn_core_chrome_browser.mdx index 5e8bdf8c5aa08..aed2780fd5302 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-chrome-browser'] --- import kbnCoreChromeBrowserObj from './kbn_core_chrome_browser.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 | |-------------------|-----------|------------------------|-----------------| -| 166 | 0 | 70 | 0 | +| 193 | 0 | 93 | 0 | ## Common diff --git a/api_docs/kbn_core_chrome_browser_mocks.mdx b/api_docs/kbn_core_chrome_browser_mocks.mdx index 02e3a5ec0123f..0c376d5e78dac 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-01-04 +date: 2024-01-25 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 2289372300052..87d581d830e45 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-01-04 +date: 2024-01-25 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 fb768b7c12d3f..40cc79180ae32 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-01-04 +date: 2024-01-25 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 47066277a2823..7be0b2984bc8a 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-01-04 +date: 2024-01-25 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 0557c03698a20..f17c8213cb5c3 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-01-04 +date: 2024-01-25 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 e4c2d814ce4ce..9a1af7abaa22e 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-01-04 +date: 2024-01-25 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 47df9f6bd415c..e66540807da07 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-01-04 +date: 2024-01-25 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 8f0176938100e..014356028b271 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-01-04 +date: 2024-01-25 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 5c6ac50845b06..763055dbfeaf9 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-01-04 +date: 2024-01-25 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 cb4891afb2a62..f04cb86393fb7 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-01-04 +date: 2024-01-25 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 2fcebc148f34f..ec973cebbf434 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-01-04 +date: 2024-01-25 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 40c40b888547e..1b1fb04a5d590 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-01-04 +date: 2024-01-25 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 276dae6fdc910..300ef9c281a1b 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-01-04 +date: 2024-01-25 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 06938c8a2b3d5..ad933156a423e 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-01-04 +date: 2024-01-25 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 096e7236e1524..a711694adb69c 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-01-04 +date: 2024-01-25 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 cc44b8b202e8f..9777e5ec13e5a 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-01-04 +date: 2024-01-25 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 2f95b164db63d..15f5d4e6fd3a0 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-01-04 +date: 2024-01-25 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 e001c1a7741c5..2cc2a0fdf954e 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-01-04 +date: 2024-01-25 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 0dd3e339adf53..266694442ec43 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-01-04 +date: 2024-01-25 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 039d4286527ab..793d2900c6690 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-01-04 +date: 2024-01-25 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 6ae23ebdbc4f2..7222984c26d28 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-elasticsearch-client-server-internal'] --- import kbnCoreElasticsearchClientServerInternalObj from './kbn_core_elasticsearch_client_server_internal.devdocs.json'; diff --git a/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx b/api_docs/kbn_core_elasticsearch_client_server_mocks.mdx index 84519ae1e6f50..72913f15543dd 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-01-04 +date: 2024-01-25 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 5b1adab029495..8688cc553176a 100644 --- a/api_docs/kbn_core_elasticsearch_server.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server.devdocs.json @@ -760,6 +760,10 @@ "plugin": "@kbn/core-plugins-server-internal", "path": "packages/core/plugins/core-plugins-server-internal/src/plugin_context.ts" }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/plugin.ts" + }, { "plugin": "observabilityOnboarding", "path": "x-pack/plugins/observability_onboarding/server/plugin.ts" diff --git a/api_docs/kbn_core_elasticsearch_server.mdx b/api_docs/kbn_core_elasticsearch_server.mdx index 58dc5db374275..9e4ab2b7272ba 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-01-04 +date: 2024-01-25 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 82ccce9ed5415..623cfc3c3ce89 100644 --- a/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json +++ b/api_docs/kbn_core_elasticsearch_server_internal.devdocs.json @@ -3088,7 +3088,7 @@ "label": "ElasticsearchConfigType", "description": [], "signature": [ - "{ readonly username?: string | undefined; readonly password?: string | undefined; readonly serviceAccountToken?: string | undefined; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; } & { verificationMode: \"none\" | \"full\" | \"certificate\"; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; alwaysPresentCertificate: boolean; }>; readonly healthCheck: Readonly<{} & { delay: moment.Duration; }>; readonly hosts: string | string[]; readonly requestTimeout: moment.Duration; readonly compression: boolean; readonly customHeaders: Record; readonly sniffOnStart: boolean; readonly sniffInterval: false | moment.Duration; readonly sniffOnConnectionFault: boolean; readonly maxSockets: number; readonly maxIdleSockets: number; readonly idleSocketTimeout: moment.Duration; readonly requestHeadersWhitelist: string | string[]; readonly shardTimeout: moment.Duration; readonly pingTimeout: moment.Duration; readonly logQueries: boolean; readonly apiVersion: string; readonly ignoreVersionMismatch: boolean; readonly skipStartupConnectionCheck: boolean; readonly apisToRedactInLogs: Readonly<{ method?: string | undefined; } & { path: string; }>[]; }" + "{ readonly username?: string | undefined; readonly password?: string | undefined; readonly serviceAccountToken?: string | undefined; readonly ssl: Readonly<{ key?: string | undefined; certificateAuthorities?: string | string[] | undefined; certificate?: string | undefined; keyPassphrase?: string | undefined; } & { verificationMode: \"none\" | \"full\" | \"certificate\"; keystore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; alwaysPresentCertificate: boolean; }>; readonly healthCheck: Readonly<{} & { delay: moment.Duration; }>; readonly hosts: string | string[]; readonly requestTimeout: moment.Duration; readonly compression: boolean; readonly apiVersion: string; readonly customHeaders: Record; readonly sniffOnStart: boolean; readonly sniffInterval: false | moment.Duration; readonly sniffOnConnectionFault: boolean; readonly maxSockets: number; readonly maxIdleSockets: number; readonly idleSocketTimeout: moment.Duration; readonly requestHeadersWhitelist: string | string[]; readonly shardTimeout: moment.Duration; readonly pingTimeout: moment.Duration; readonly logQueries: boolean; readonly ignoreVersionMismatch: boolean; readonly skipStartupConnectionCheck: boolean; readonly apisToRedactInLogs: Readonly<{ method?: string | undefined; } & { path: string; }>[]; }" ], "path": "packages/core/elasticsearch/core-elasticsearch-server-internal/src/elasticsearch_config.ts", "deprecated": false, diff --git a/api_docs/kbn_core_elasticsearch_server_internal.mdx b/api_docs/kbn_core_elasticsearch_server_internal.mdx index 30259cc8ff033..c2f4b2fa72734 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-01-04 +date: 2024-01-25 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 fb88fcd87870e..b0aa37355690a 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-01-04 +date: 2024-01-25 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 0b45eda63a4d6..71f9bb27d9b9c 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-01-04 +date: 2024-01-25 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 68780da325957..6b1c17c1d00a1 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-01-04 +date: 2024-01-25 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 84acec6f8c4d0..5d211708375c7 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-01-04 +date: 2024-01-25 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 6f5cdfc30e9fb..7b27fc688472d 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-01-04 +date: 2024-01-25 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 dae8f7597fa85..2c319a4d0f646 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-01-04 +date: 2024-01-25 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 d3443180f5e37..42db3b84059f1 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-01-04 +date: 2024-01-25 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 9bcd85c18be25..b084c7027d312 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-01-04 +date: 2024-01-25 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 c55c66060c457..26d1198c78ca2 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-01-04 +date: 2024-01-25 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 c02aee85f62c2..554672a5d0663 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-01-04 +date: 2024-01-25 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 a370ba31b7392..186d8111e6f90 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-01-04 +date: 2024-01-25 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 4cd23b56d2049..e101b406a8872 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-01-04 +date: 2024-01-25 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 b1d5fa2f87bf7..bca71c970194e 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-01-04 +date: 2024-01-25 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 95910196e46a0..a2b54137ccf55 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-01-04 +date: 2024-01-25 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 bf351d6b6045b..5d565cd43864a 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-01-04 +date: 2024-01-25 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 cf934a82ce8a1..3e7b318f5365a 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-01-04 +date: 2024-01-25 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 cf0cc09149fe9..1b5f80bf73943 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-01-04 +date: 2024-01-25 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 c843f511ba710..60096a5012988 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_core_http_resources_server.devdocs.json index 1b3ef39af611e..1d89ea374bb6b 100644 --- a/api_docs/kbn_core_http_resources_server.devdocs.json +++ b/api_docs/kbn_core_http_resources_server.devdocs.json @@ -247,7 +247,7 @@ "tags": [], "label": "renderAnonymousCoreApp", "description": [ - "To respond with HTML page bootstrapping Kibana application without retrieving user-specific information." + "\nTo respond with HTML page bootstrapping Kibana application without retrieving user-specific information.\n**Note:**\n- Your client-side JavaScript bundle will only be loaded on an anonymous page if `plugin.enabledOnAnonymousPages` is enabled in your plugin's `kibana.jsonc` manifest file.\n- You will also need to register the route serving your anonymous app with the `coreSetup.http.anonymousPaths` service in your plugin's client-side `setup` method." ], "signature": [ "(options?: ", @@ -506,6 +506,14 @@ "text": "KibanaRedirectionResponseFactory" }, " & ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.KibanaNotModifiedResponseFactory", + "text": "KibanaNotModifiedResponseFactory" + }, + " & ", { "pluginId": "@kbn/core-http-server", "scope": "common", diff --git a/api_docs/kbn_core_http_resources_server.mdx b/api_docs/kbn_core_http_resources_server.mdx index 9b26b97d0bf25..b2af0a38eddf8 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-01-04 +date: 2024-01-25 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 3e9098cf3068b..36d18d4292427 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_core_http_resources_server_mocks.devdocs.json index 5af3c308b95e5..58e758c332771 100644 --- a/api_docs/kbn_core_http_resources_server_mocks.devdocs.json +++ b/api_docs/kbn_core_http_resources_server_mocks.devdocs.json @@ -569,6 +569,38 @@ "section": "def-common.IKibanaResponse", "text": "IKibanaResponse" }, + "); notModified: jest.MockInstance<", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.IKibanaResponse", + "text": "IKibanaResponse" + }, + ", [options: ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.HttpResponseOptions", + "text": "HttpResponseOptions" + }, + "], unknown> & ((options: ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.HttpResponseOptions", + "text": "HttpResponseOptions" + }, + ") => ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.IKibanaResponse", + "text": "IKibanaResponse" + }, "); badRequest: jest.MockInstance<", { "pluginId": "@kbn/core-http-server", diff --git a/api_docs/kbn_core_http_resources_server_mocks.mdx b/api_docs/kbn_core_http_resources_server_mocks.mdx index 0f301dc896f4c..2d5a235d19d78 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_core_http_router_server_internal.devdocs.json index f3b8701d3798e..4d492690cdf36 100644 --- a/api_docs/kbn_core_http_router_server_internal.devdocs.json +++ b/api_docs/kbn_core_http_router_server_internal.devdocs.json @@ -124,10 +124,9 @@ "(kibanaResponse: ", "KibanaResponse", ") => ", - "ResponseObject", - " | ", "Boom", - "" + " | ", + "ResponseObject" ], "path": "packages/core/http/core-http-router-server-internal/src/response_adapter.ts", "deprecated": false, @@ -393,6 +392,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/core-http-router-server-internal", + "id": "def-common.kibanaResponseFactory.Unnamed", + "type": "Any", + "tags": [], + "label": "Unnamed", + "description": [], + "signature": [ + "any" + ], + "path": "packages/core/http/core-http-router-server-internal/src/response.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/core-http-router-server-internal", "id": "def-common.kibanaResponseFactory.custom", diff --git a/api_docs/kbn_core_http_router_server_internal.mdx b/api_docs/kbn_core_http_router_server_internal.mdx index 4619b1f044320..3e22c2d288c96 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-router-server-internal'] --- import kbnCoreHttpRouterServerInternalObj from './kbn_core_http_router_server_internal.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 26 | 6 | 26 | 2 | +| 27 | 7 | 27 | 2 | ## Common diff --git a/api_docs/kbn_core_http_router_server_mocks.mdx b/api_docs/kbn_core_http_router_server_mocks.mdx index 1b0b50082abf7..128a5f77eb007 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-01-04 +date: 2024-01-25 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 1fdad6d156ff6..f17449673b285 100644 --- a/api_docs/kbn_core_http_server.devdocs.json +++ b/api_docs/kbn_core_http_server.devdocs.json @@ -4092,6 +4092,10 @@ "plugin": "enterpriseSearch", "path": "x-pack/plugins/enterprise_search/server/routes/enterprise_search/config_data.ts" }, + { + "plugin": "enterpriseSearch", + "path": "x-pack/plugins/enterprise_search/server/routes/enterprise_search/config_data.ts" + }, { "plugin": "enterpriseSearch", "path": "x-pack/plugins/enterprise_search/server/routes/enterprise_search/connectors.ts" @@ -4660,6 +4664,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/router.ts" @@ -4916,10 +4924,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/rule_types.test.ts" }, - { - "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/__mocks__/server.ts" - }, { "plugin": "features", "path": "x-pack/plugins/features/server/routes/index.test.ts" @@ -7034,6 +7038,14 @@ "plugin": "visTypeTimelion", "path": "src/plugins/vis_types/timelion/server/routes/run.ts" }, + { + "plugin": "mockIdpPlugin", + "path": "packages/kbn-mock-idp-plugin/server/plugin.ts" + }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" @@ -7258,10 +7270,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/update_rule_api_key.test.ts" }, - { - "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/__mocks__/server.ts" - }, { "plugin": "encryptedSavedObjects", "path": "x-pack/plugins/encrypted_saved_objects/server/routes/key_rotation.test.ts" @@ -8340,6 +8348,10 @@ "plugin": "ftrApis", "path": "src/plugins/ftr_apis/server/routes/kbn_client_so/update.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/router.ts" @@ -8392,10 +8404,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/update_rule.test.ts" }, - { - "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/__mocks__/server.ts" - }, { "plugin": "globalSearch", "path": "x-pack/plugins/global_search/server/routes/index.test.ts" @@ -8742,10 +8750,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/bulk_enable_rules.test.ts" }, - { - "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/__mocks__/server.ts" - }, { "plugin": "ruleRegistry", "path": "x-pack/plugins/rule_registry/server/routes/__mocks__/server.ts" @@ -9304,10 +9308,6 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/routes/delete_rule.test.ts" }, - { - "plugin": "elasticAssistant", - "path": "x-pack/plugins/elastic_assistant/server/__mocks__/server.ts" - }, { "plugin": "globalSearch", "path": "x-pack/plugins/global_search/server/routes/index.test.ts" @@ -10165,6 +10165,79 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/core-http-server", + "id": "def-common.KibanaNotModifiedResponseFactory", + "type": "Interface", + "tags": [], + "label": "KibanaNotModifiedResponseFactory", + "description": [], + "path": "packages/core/http/core-http-server/src/router/response_factory.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-http-server", + "id": "def-common.KibanaNotModifiedResponseFactory.notModified", + "type": "Function", + "tags": [], + "label": "notModified", + "description": [ + "\nContent not modified.\nStatus code: `304`." + ], + "signature": [ + "(options: ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.HttpResponseOptions", + "text": "HttpResponseOptions" + }, + ") => ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.IKibanaResponse", + "text": "IKibanaResponse" + }, + "" + ], + "path": "packages/core/http/core-http-server/src/router/response_factory.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-http-server", + "id": "def-common.KibanaNotModifiedResponseFactory.notModified.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [ + "- {@link HttpResponseOptions } configures HTTP response body & headers." + ], + "signature": [ + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.HttpResponseOptions", + "text": "HttpResponseOptions" + }, + "" + ], + "path": "packages/core/http/core-http-server/src/router/response_factory.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/core-http-server", "id": "def-common.KibanaRedirectionResponseFactory", @@ -12191,10 +12264,10 @@ ", responseToolkit: ", "ResponseToolkit", ") => Promise<", - "ResponseObject", - " | ", "Boom", - ">" + " | ", + "ResponseObject", + ">" ], "path": "packages/core/http/core-http-server/src/router/router.ts", "deprecated": false, @@ -13073,6 +13146,10 @@ "plugin": "dataViews", "path": "src/plugins/data_views/server/rest_api_routes/internal/has_data_views.ts" }, + { + "plugin": "dataViews", + "path": "src/plugins/data_views/server/rest_api_routes/internal/fields.ts" + }, { "plugin": "bfetch", "path": "src/plugins/bfetch/server/plugin.ts" @@ -13417,6 +13494,14 @@ "plugin": "ecsDataQualityDashboard", "path": "x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_ilm_explain.ts" }, + { + "plugin": "ecsDataQualityDashboard", + "path": "x-pack/plugins/ecs_data_quality_dashboard/server/routes/results/get_results.ts" + }, + { + "plugin": "elasticAssistant", + "path": "x-pack/plugins/elastic_assistant/server/routes/capabilities/get_capabilities_route.ts" + }, { "plugin": "logsShared", "path": "x-pack/plugins/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" @@ -13677,6 +13762,10 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/privileges.ts" }, + { + "plugin": "securitySolution", + "path": "x-pack/plugins/security_solution/server/lib/entity_analytics/risk_engine/routes/settings.ts" + }, { "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/server/lib/timeline/routes/timelines/get_timeline/index.ts" @@ -13865,6 +13954,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.test.ts" @@ -14188,6 +14281,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "ecsDataQualityDashboard", "path": "x-pack/plugins/ecs_data_quality_dashboard/server/__mocks__/server.ts" @@ -14719,6 +14816,10 @@ "plugin": "ecsDataQualityDashboard", "path": "x-pack/plugins/ecs_data_quality_dashboard/server/routes/get_unallowed_field_values.ts" }, + { + "plugin": "ecsDataQualityDashboard", + "path": "x-pack/plugins/ecs_data_quality_dashboard/server/routes/results/post_results.ts" + }, { "plugin": "logsShared", "path": "x-pack/plugins/logs_shared/server/lib/adapters/framework/kibana_framework_adapter.ts" @@ -14739,6 +14840,10 @@ "plugin": "fileUpload", "path": "x-pack/plugins/file_upload/server/routes.ts" }, + { + "plugin": "fileUpload", + "path": "x-pack/plugins/file_upload/server/routes.ts" + }, { "plugin": "infra", "path": "x-pack/plugins/infra/server/lib/adapters/framework/kibana_framework_adapter.ts" @@ -15123,6 +15228,10 @@ "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" }, + { + "plugin": "@kbn/core-http-router-server-internal", + "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.test.ts" + }, { "plugin": "@kbn/core-http-router-server-internal", "path": "packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.test.ts" @@ -16042,7 +16151,7 @@ "section": "def-common.HandlerFunction", "text": "HandlerFunction" }, - " ? U : never" + " ? U : never" ], "path": "packages/core/http/core-http-server/src/router/context_provider.ts", "deprecated": false, @@ -16354,6 +16463,14 @@ "text": "KibanaRedirectionResponseFactory" }, " & ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.KibanaNotModifiedResponseFactory", + "text": "KibanaNotModifiedResponseFactory" + }, + " & ", { "pluginId": "@kbn/core-http-server", "scope": "common", @@ -17212,7 +17329,15 @@ "section": "def-common.HttpResponseOptions", "text": "HttpResponseOptions" }, - " & { headers: { location: string; }; }" + " & { headers?: ", + { + "pluginId": "@kbn/core-http-server", + "scope": "common", + "docId": "kibKbnCoreHttpServerPluginApi", + "section": "def-common.ResponseHeaders", + "text": "ResponseHeaders" + }, + " | undefined; }" ], "path": "packages/core/http/core-http-server/src/router/response.ts", "deprecated": false, diff --git a/api_docs/kbn_core_http_server.mdx b/api_docs/kbn_core_http_server.mdx index 1646c74c42d11..43ee602d879cf 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-http-server'] --- import kbnCoreHttpServerObj from './kbn_core_http_server.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 454 | 1 | 179 | 0 | +| 457 | 1 | 180 | 0 | ## Common diff --git a/api_docs/kbn_core_http_server_internal.devdocs.json b/api_docs/kbn_core_http_server_internal.devdocs.json index 777bf0f988ab2..7b138870b2d1e 100644 --- a/api_docs/kbn_core_http_server_internal.devdocs.json +++ b/api_docs/kbn_core_http_server_internal.devdocs.json @@ -535,7 +535,7 @@ "signature": [ "{ versionResolution: ", "HandlerResolutionStrategy", - "; strictClientVersionCheck: boolean; }" + "; strictClientVersionCheck: boolean; useVersionResolutionStrategyForInternalPaths: string[]; }" ], "path": "packages/core/http/core-http-server-internal/src/http_config.ts", "deprecated": false, @@ -893,7 +893,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<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; readonly host: string; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly port: number; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly cdn: Readonly<{ url?: string | undefined; } & {}>; readonly securityResponseHeaders: Readonly<{} & { 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<{ path?: string | undefined; password?: string | undefined; } & {}>; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; readonly host: string; readonly compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; readonly port: number; readonly cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; readonly versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; useVersionResolutionStrategyForInternalPaths: string[]; }>; readonly autoListen: boolean; readonly shutdownTimeout: moment.Duration; readonly cdn: Readonly<{ url?: string | undefined; } & {}>; readonly securityResponseHeaders: Readonly<{} & { 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 95405dcd06ca7..a6ea69b32448e 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-01-04 +date: 2024-01-25 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 7451177dbb1bb..e3dceb95217ad 100644 --- a/api_docs/kbn_core_http_server_mocks.devdocs.json +++ b/api_docs/kbn_core_http_server_mocks.devdocs.json @@ -27,7 +27,7 @@ "label": "createConfigService", "description": [], "signature": [ - "({ server, externalUrl, csp, }?: Partial<{ server: Partial; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; port: number; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | undefined; } & {}>; securityResponseHeaders: Readonly<{} & { 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<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; port: number; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; useVersionResolutionStrategyForInternalPaths: string[]; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | undefined; } & {}>; securityResponseHeaders: Readonly<{} & { 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", @@ -64,7 +64,7 @@ "label": "{\n server,\n externalUrl,\n csp,\n}", "description": [], "signature": [ - "Partial<{ server: Partial; truststore: Readonly<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; port: number; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | undefined; } & {}>; securityResponseHeaders: Readonly<{} & { 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<{ path?: string | undefined; password?: string | undefined; } & {}>; cipherSuites: string[]; supportedProtocols: string[]; clientAuthentication: \"none\" | \"optional\" | \"required\"; }>; host: string; compression: Readonly<{ referrerWhitelist?: string[] | undefined; } & { enabled: boolean; brotli: Readonly<{} & { enabled: boolean; quality: number; }>; }>; port: number; cors: Readonly<{} & { enabled: boolean; allowCredentials: boolean; allowOrigin: string[] | \"*\"[]; }>; versioned: Readonly<{} & { versionResolution: \"none\" | \"newest\" | \"oldest\"; strictClientVersionCheck: boolean; useVersionResolutionStrategyForInternalPaths: string[]; }>; autoListen: boolean; shutdownTimeout: moment.Duration; cdn: Readonly<{ url?: string | undefined; } & {}>; securityResponseHeaders: Readonly<{} & { 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", @@ -933,8 +933,8 @@ "text": "DeepPartialObject" }, "<", - "ResponseObject", - "> | ", + "Boom", + "> | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -943,8 +943,8 @@ "text": "DeepPartialObject" }, "<", - "Boom", - "> | undefined; readonly preResponses?: ", + "ResponseObject", + "> | undefined; readonly preResponses?: ", { "pluginId": "@kbn/utility-types", "scope": "common", diff --git a/api_docs/kbn_core_http_server_mocks.mdx b/api_docs/kbn_core_http_server_mocks.mdx index d23065a22a01e..640a50711e003 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-01-04 +date: 2024-01-25 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 807e09bb6a594..e23f714300c00 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-01-04 +date: 2024-01-25 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 20ebff06fbca3..401cb55d0f35c 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-01-04 +date: 2024-01-25 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 f56413569351d..8dd5f77b6e3da 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-01-04 +date: 2024-01-25 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 31ac9457e072f..541739db3d9f7 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-01-04 +date: 2024-01-25 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 47ccee6e6cd15..96bf6b561cd14 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-01-04 +date: 2024-01-25 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 2ed3ed3355a46..85ec568f8a9f5 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-01-04 +date: 2024-01-25 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 24be40a1fc587..dd5245db5164a 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-01-04 +date: 2024-01-25 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 e1e5c04231041..29f111bc69715 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_core_lifecycle_browser.devdocs.json index f3489db3d9e66..13a073fb2437c 100644 --- a/api_docs/kbn_core_lifecycle_browser.devdocs.json +++ b/api_docs/kbn_core_lifecycle_browser.devdocs.json @@ -615,6 +615,14 @@ "plugin": "transform", "path": "x-pack/plugins/transform/public/app/mount_management_section.ts" }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts" + }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts" + }, { "plugin": "discover", "path": "src/plugins/discover/public/application/main/services/discover_state.test.ts" diff --git a/api_docs/kbn_core_lifecycle_browser.mdx b/api_docs/kbn_core_lifecycle_browser.mdx index 64ffdd809b2a6..5dbdef283f799 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-01-04 +date: 2024-01-25 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 6e94acb61527b..acd480f085307 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-01-04 +date: 2024-01-25 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 fc5a818242d33..40e62e36651db 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-01-04 +date: 2024-01-25 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 d66a001fbed30..7f05625848969 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-01-04 +date: 2024-01-25 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 584b2355c3273..66e9017391b19 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-01-04 +date: 2024-01-25 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 a1e0764981126..32abf909832d9 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-01-04 +date: 2024-01-25 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 431cd7f5a46b7..f43e521b4a871 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-01-04 +date: 2024-01-25 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 89e76e1e5d977..a2eee96c9d53d 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-01-04 +date: 2024-01-25 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 7706403fd0843..9e4780ad3d9ef 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-01-04 +date: 2024-01-25 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 13f01e4c371d4..71943b78962f6 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-01-04 +date: 2024-01-25 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 1f612d9b47e42..36e7da6be37bc 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-01-04 +date: 2024-01-25 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 a5110c2ef5806..efca07b5f7f22 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-01-04 +date: 2024-01-25 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 0794553156ba8..269f4bfe2df41 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-01-04 +date: 2024-01-25 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 1fcb936b77402..bf00d3bb160a5 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-01-04 +date: 2024-01-25 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 e9d8e7bd63339..e0cfcc383b851 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-01-04 +date: 2024-01-25 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 41847b2965ce1..f3cd90805a9ab 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-01-04 +date: 2024-01-25 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 dc5608723d689..a0e40de470a11 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-01-04 +date: 2024-01-25 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 74e310e07bc4d..389422efc6967 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_core_notifications_browser.devdocs.json index 6d53259b76fec..3237e70e94b48 100644 --- a/api_docs/kbn_core_notifications_browser.devdocs.json +++ b/api_docs/kbn_core_notifications_browser.devdocs.json @@ -736,7 +736,7 @@ "signature": [ "Pick<", "Toast", - ", \"prefix\" | \"defaultValue\" | \"security\" | \"children\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", + ", \"prefix\" | \"defaultValue\" | \"security\" | \"children\" | \"slot\" | \"style\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", @@ -795,7 +795,7 @@ "signature": [ "Pick<", "Toast", - ", \"prefix\" | \"defaultValue\" | \"security\" | \"children\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", + ", \"prefix\" | \"defaultValue\" | \"security\" | \"children\" | \"slot\" | \"style\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"iconType\" | \"onClose\" | \"toastLifeTimeMs\"> & { title?: string | ", { "pluginId": "@kbn/core-mount-utils-browser", "scope": "common", diff --git a/api_docs/kbn_core_notifications_browser.mdx b/api_docs/kbn_core_notifications_browser.mdx index 3c89672e3fcb5..eba1b6d73fe2f 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-01-04 +date: 2024-01-25 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 f68349b2df2bd..17204cb054d4b 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-01-04 +date: 2024-01-25 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 aa66bff4ae8c5..4185487e38112 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-01-04 +date: 2024-01-25 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 099c145770adc..6d13171549b3d 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-01-04 +date: 2024-01-25 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 5ee90e5a9a9fd..16d648ea6e9f8 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-01-04 +date: 2024-01-25 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 aca97bed11b21..ea64b16fbe7bd 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-01-04 +date: 2024-01-25 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 3ad8d49e085d4..c09a6341da419 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-01-04 +date: 2024-01-25 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 7517e87c6bf45..95d80cac59419 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-01-04 +date: 2024-01-25 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 2d32821e57a68..9a15a9a3ad3fc 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-01-04 +date: 2024-01-25 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 3a622d5b19917..e05ba89dea2bd 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-01-04 +date: 2024-01-25 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 e97622f466a7f..4e86dd7b0338e 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-01-04 +date: 2024-01-25 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 789728222a03c..36a43480010d0 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-01-04 +date: 2024-01-25 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 3188532eef0c4..a13abe4471bd1 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-01-04 +date: 2024-01-25 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 9abf502bc9841..0ae04063a2010 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-01-04 +date: 2024-01-25 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 1b65c430646de..1e5b8974747e2 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-01-04 +date: 2024-01-25 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 269a838711fe1..416da0e58459b 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-01-04 +date: 2024-01-25 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 530d51da435ae..14efce4595c56 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-01-04 +date: 2024-01-25 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 d88b4b65ba87f..c14467ff78850 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_core_saved_objects_api_browser.devdocs.json index 942eca39273a1..f80fc9e96295f 100644 --- a/api_docs/kbn_core_saved_objects_api_browser.devdocs.json +++ b/api_docs/kbn_core_saved_objects_api_browser.devdocs.json @@ -882,6 +882,10 @@ "plugin": "@kbn/core-saved-objects-browser", "path": "packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts" }, + { + "plugin": "@kbn/core-saved-objects-browser", + "path": "packages/core/saved-objects/core-saved-objects-browser/src/contracts.ts" + }, { "plugin": "@kbn/core-saved-objects-browser-internal", "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" @@ -1134,6 +1138,10 @@ "plugin": "savedObjects", "path": "src/plugins/saved_objects/public/saved_object/helpers/save_with_confirmation.test.ts" }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts" + }, { "plugin": "@kbn/core-saved-objects-browser-internal", "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.test.ts" @@ -1647,6 +1655,10 @@ "plugin": "savedObjects", "path": "src/plugins/saved_objects/public/saved_object/helpers/find_object_by_title.test.ts" }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts" + }, { "plugin": "@kbn/core-saved-objects-browser-internal", "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" @@ -1735,6 +1747,10 @@ "plugin": "savedObjects", "path": "src/plugins/saved_objects/public/saved_object/saved_object.test.ts" }, + { + "plugin": "dashboard", + "path": "src/plugins/dashboard/public/dashboard_container/embeddable/api/duplicate_dashboard_panel.test.ts" + }, { "plugin": "@kbn/core-saved-objects-browser-internal", "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" @@ -2939,6 +2955,14 @@ "plugin": "@kbn/core-saved-objects-browser-internal", "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" }, + { + "plugin": "@kbn/core-saved-objects-browser-internal", + "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" + }, + { + "plugin": "@kbn/core-saved-objects-browser-internal", + "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/simple_saved_object.ts" + }, { "plugin": "@kbn/core-saved-objects-browser-internal", "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_client.ts" diff --git a/api_docs/kbn_core_saved_objects_api_browser.mdx b/api_docs/kbn_core_saved_objects_api_browser.mdx index 405eb70d599cb..8d69f6e285d2e 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-browser'] --- import kbnCoreSavedObjectsApiBrowserObj from './kbn_core_saved_objects_api_browser.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_api_server.devdocs.json b/api_docs/kbn_core_saved_objects_api_server.devdocs.json index cba6a38ce7957..606ddff1badbf 100644 --- a/api_docs/kbn_core_saved_objects_api_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_api_server.devdocs.json @@ -2746,6 +2746,10 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/types.ts" }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" diff --git a/api_docs/kbn_core_saved_objects_api_server.mdx b/api_docs/kbn_core_saved_objects_api_server.mdx index 36f8838849be8..020b0f858c121 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-01-04 +date: 2024-01-25 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 690c0b69d4244..7e6974a74e255 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-api-server-mocks'] --- import kbnCoreSavedObjectsApiServerMocksObj from './kbn_core_saved_objects_api_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json b/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json index ff317f16d9a6c..bcd13697e1ae8 100644 --- a/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json +++ b/api_docs/kbn_core_saved_objects_base_server_internal.devdocs.json @@ -1689,6 +1689,325 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.DocumentMigrateOptions", + "type": "Interface", + "tags": [], + "label": "DocumentMigrateOptions", + "description": [ + "\nOptions for {@link IDocumentMigrator.migrate}" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.DocumentMigrateOptions.allowDowngrade", + "type": "CompoundType", + "tags": [], + "label": "allowDowngrade", + "description": [ + "\nDefines whether it is allowed to convert documents from an higher version or not.\n- If `true`, documents from higher versions will go though the downgrade pipeline.\n- If `false`, an error will be thrown when trying to process a document with an higher type version.\nDefaults to `false`." + ], + "signature": [ + "boolean | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.DocumentMigrateOptions.targetTypeVersion", + "type": "string", + "tags": [], + "label": "targetTypeVersion", + "description": [ + "\nIf specified, will migrate to the given version instead of the latest known version." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator", + "type": "Interface", + "tags": [], + "label": "IDocumentMigrator", + "description": [ + "\nManages transformations of individual documents." + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator.migrate", + "type": "Function", + "tags": [], + "label": "migrate", + "description": [ + "\nMigrates a document to its latest version." + ], + "signature": [ + "(doc: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + ", options?: ", + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.DocumentMigrateOptions", + "text": "DocumentMigrateOptions" + }, + " | undefined) => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator.migrate.$1", + "type": "CompoundType", + "tags": [], + "label": "doc", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator.migrate.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.DocumentMigrateOptions", + "text": "DocumentMigrateOptions" + }, + " | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator.migrateAndConvert", + "type": "Function", + "tags": [], + "label": "migrateAndConvert", + "description": [ + "\nMigrates a document to the latest version and applies type conversions if applicable.\nAlso returns any additional document(s) that may have been created during the transformation process.\n" + ], + "signature": [ + "(doc: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + ") => ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + "[]" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator.migrateAndConvert.$1", + "type": "CompoundType", + "tags": [], + "label": "doc", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator.isDowngradeRequired", + "type": "Function", + "tags": [], + "label": "isDowngradeRequired", + "description": [ + "\nReturns true if the provided document has a higher version that the `targetTypeVersion`\n(defaulting to the last known version), false otherwise." + ], + "signature": [ + "(doc: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + ", options?: ", + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.IsDowngradeRequiredOptions", + "text": "IsDowngradeRequiredOptions" + }, + " | undefined) => boolean" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator.isDowngradeRequired.$1", + "type": "CompoundType", + "tags": [], + "label": "doc", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IDocumentMigrator.isDowngradeRequired.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.IsDowngradeRequiredOptions", + "text": "IsDowngradeRequiredOptions" + }, + " | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IsDowngradeRequiredOptions", + "type": "Interface", + "tags": [], + "label": "IsDowngradeRequiredOptions", + "description": [ + "\nOptions for {@link IDocumentMigrator.isDowngradeRequired}" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-base-server-internal", + "id": "def-common.IsDowngradeRequiredOptions.targetTypeVersion", + "type": "string", + "tags": [], + "label": "targetTypeVersion", + "description": [ + "\nIf specified, will migrate to the given version instead of the latest known version." + ], + "signature": [ + "string | undefined" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], 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 0dbdf60396e53..cae625cd842eb 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-internal'] --- import kbnCoreSavedObjectsBaseServerInternalObj from './kbn_core_saved_objects_base_server_internal.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 98 | 0 | 66 | 10 | +| 112 | 0 | 71 | 10 | ## Common diff --git a/api_docs/kbn_core_saved_objects_base_server_mocks.devdocs.json b/api_docs/kbn_core_saved_objects_base_server_mocks.devdocs.json index deba719927887..7712604342d52 100644 --- a/api_docs/kbn_core_saved_objects_base_server_mocks.devdocs.json +++ b/api_docs/kbn_core_saved_objects_base_server_mocks.devdocs.json @@ -18,7 +18,33 @@ }, "common": { "classes": [], - "functions": [], + "functions": [ + { + "parentPluginId": "@kbn/core-saved-objects-base-server-mocks", + "id": "def-common.createDocumentMigratorMock", + "type": "Function", + "tags": [], + "label": "createDocumentMigratorMock", + "description": [], + "signature": [ + "() => jest.Mocked<", + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.IDocumentMigrator", + "text": "IDocumentMigrator" + }, + ">" + ], + "path": "packages/core/saved-objects/core-saved-objects-base-server-mocks/src/document_migrator.mock.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + } + ], "interfaces": [], "enums": [], "misc": [], 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 ea3ea08c9248e..c0cfa984a5638 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-base-server-mocks'] --- import kbnCoreSavedObjectsBaseServerMocksObj from './kbn_core_saved_objects_base_server_mocks.devdocs.json'; @@ -21,10 +21,13 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 4 | 0 | 4 | 0 | +| 5 | 0 | 5 | 0 | ## Common ### Objects +### Functions + + diff --git a/api_docs/kbn_core_saved_objects_browser.devdocs.json b/api_docs/kbn_core_saved_objects_browser.devdocs.json index 487ebe0921108..fbf650f94ae43 100644 --- a/api_docs/kbn_core_saved_objects_browser.devdocs.json +++ b/api_docs/kbn_core_saved_objects_browser.devdocs.json @@ -41,6 +41,10 @@ "plugin": "@kbn/core-lifecycle-browser", "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts" }, + { + "plugin": "@kbn/core-lifecycle-browser", + "path": "packages/core/lifecycle/core-lifecycle-browser/src/core_start.ts" + }, { "plugin": "@kbn/core-saved-objects-browser-internal", "path": "packages/core/saved-objects/core-saved-objects-browser-internal/src/saved_objects_service.ts" diff --git a/api_docs/kbn_core_saved_objects_browser.mdx b/api_docs/kbn_core_saved_objects_browser.mdx index 8ea6c02a57b23..af1750c870d86 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-01-04 +date: 2024-01-25 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 0819d5a1e7997..e6b64a18bb17b 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-01-04 +date: 2024-01-25 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 4658f309b11a5..5bdd6e7481f2b 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_core_saved_objects_common.devdocs.json index 4e83ddfc44888..4ece71332c098 100644 --- a/api_docs/kbn_core_saved_objects_common.devdocs.json +++ b/api_docs/kbn_core_saved_objects_common.devdocs.json @@ -2426,6 +2426,10 @@ "plugin": "savedObjectsTagging", "path": "x-pack/plugins/saved_objects_tagging/common/references.ts" }, + { + "plugin": "savedObjectsTagging", + "path": "x-pack/plugins/saved_objects_tagging/common/references.ts" + }, { "plugin": "savedObjectsTagging", "path": "x-pack/plugins/saved_objects_tagging/public/utils.ts" diff --git a/api_docs/kbn_core_saved_objects_common.mdx b/api_docs/kbn_core_saved_objects_common.mdx index a74bec6b40adf..912b401190e73 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-01-04 +date: 2024-01-25 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 1a4c01991982f..0c236690f830e 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-01-04 +date: 2024-01-25 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 f37847eb15bda..e4f6867961581 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-01-04 +date: 2024-01-25 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 fa854a0dea28f..9333bd0e00ef2 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 @@ -25,7 +25,7 @@ "tags": [], "label": "DocumentMigrator", "description": [ - "\nA concrete implementation of the {@link VersionedTransformer} interface." + "\nA concrete implementation of the {@link IDocumentMigrator} interface." ], "signature": [ { @@ -36,7 +36,13 @@ "text": "DocumentMigrator" }, " implements ", - "VersionedTransformer" + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.IDocumentMigrator", + "text": "IDocumentMigrator" + } ], "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, @@ -159,7 +165,13 @@ "text": "SavedObjectUnsanitizedDoc" }, ", { allowDowngrade, targetTypeVersion }?: ", - "DocumentMigrateOptions", + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.DocumentMigrateOptions", + "text": "DocumentMigrateOptions" + }, ") => ", { "pluginId": "@kbn/core-saved-objects-server", @@ -204,7 +216,13 @@ "label": "{ allowDowngrade = false, targetTypeVersion }", "description": [], "signature": [ - "DocumentMigrateOptions" + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.DocumentMigrateOptions", + "text": "DocumentMigrateOptions" + } ], "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", "deprecated": false, @@ -270,6 +288,84 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "@kbn/core-saved-objects-migration-server-internal", + "id": "def-common.DocumentMigrator.isDowngradeRequired", + "type": "Function", + "tags": [], + "label": "isDowngradeRequired", + "description": [ + "\nReturns true if the provided document has a higher version that the `targetTypeVersion`\n(defaulting to the last known version), false otherwise." + ], + "signature": [ + "(doc: ", + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + ", { targetTypeVersion }?: ", + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.IsDowngradeRequiredOptions", + "text": "IsDowngradeRequiredOptions" + }, + ") => boolean" + ], + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/core-saved-objects-migration-server-internal", + "id": "def-common.DocumentMigrator.isDowngradeRequired.$1", + "type": "CompoundType", + "tags": [], + "label": "doc", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-server", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsServerPluginApi", + "section": "def-common.SavedObjectUnsanitizedDoc", + "text": "SavedObjectUnsanitizedDoc" + }, + "" + ], + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/core-saved-objects-migration-server-internal", + "id": "def-common.DocumentMigrator.isDowngradeRequired.$2", + "type": "Object", + "tags": [], + "label": "{ targetTypeVersion }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-saved-objects-base-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsBaseServerInternalPluginApi", + "section": "def-common.IsDowngradeRequiredOptions", + "text": "IsDowngradeRequiredOptions" + } + ], + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -349,6 +445,29 @@ ], "returnComment": [] }, + { + "parentPluginId": "@kbn/core-saved-objects-migration-server-internal", + "id": "def-common.KibanaMigrator.getDocumentMigrator", + "type": "Function", + "tags": [], + "label": "getDocumentMigrator", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/core-saved-objects-migration-server-internal", + "scope": "common", + "docId": "kibKbnCoreSavedObjectsMigrationServerInternalPluginApi", + "section": "def-common.DocumentMigrator", + "text": "DocumentMigrator" + } + ], + "path": "packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, { "parentPluginId": "@kbn/core-saved-objects-migration-server-internal", "id": "def-common.KibanaMigrator.runMigrations", 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 be10a7df2c69e..564e6fdef5561 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-saved-objects-migration-server-internal'] --- import kbnCoreSavedObjectsMigrationServerInternalObj from './kbn_core_saved_objects_migration_server_internal.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 125 | 0 | 91 | 47 | +| 129 | 0 | 94 | 45 | ## Common 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 83d236a7c90b8..2deedb9d0b377 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-01-04 +date: 2024-01-25 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 4625cbdfa68fb..87524176d7202 100644 --- a/api_docs/kbn_core_saved_objects_server.devdocs.json +++ b/api_docs/kbn_core_saved_objects_server.devdocs.json @@ -6211,6 +6211,10 @@ "plugin": "alerting", "path": "x-pack/plugins/alerting/server/types.ts" }, + { + "plugin": "alerting", + "path": "x-pack/plugins/alerting/server/types.ts" + }, { "plugin": "alerting", "path": "x-pack/plugins/alerting/server/saved_objects/geo_containment/migrations.ts" diff --git a/api_docs/kbn_core_saved_objects_server.mdx b/api_docs/kbn_core_saved_objects_server.mdx index 073d01306e15f..48967e6f13de9 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-01-04 +date: 2024-01-25 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 ff992ba279e5f..8fd3263949a9f 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-01-04 +date: 2024-01-25 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 d0c9b94683c4c..f42b3f7ecb690 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-01-04 +date: 2024-01-25 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 9a655a53f3d2c..2541b63080a67 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-01-04 +date: 2024-01-25 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_status_common.mdx b/api_docs/kbn_core_status_common.mdx index 30d1a76ba87a6..ae9c4f77ede86 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-01-04 +date: 2024-01-25 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 e7b9d22253332..3d6dd46a50b43 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-01-04 +date: 2024-01-25 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 1ced970793db3..3f2bfc9814b8c 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-01-04 +date: 2024-01-25 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 cb2db0211eeb1..02c13028680f6 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-01-04 +date: 2024-01-25 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 2defa9b66cd1e..e038e0b21a666 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-01-04 +date: 2024-01-25 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 bcd02b5b63d8f..051090da200dd 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-01-04 +date: 2024-01-25 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 7c28f8c40e05c..aea668c31e550 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-01-04 +date: 2024-01-25 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 d1f7537721766..61fe7d862727e 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-01-04 +date: 2024-01-25 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 df6c2317422f8..d3692745662c9 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-01-04 +date: 2024-01-25 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 a5d5ec6bcf424..5ed47d8ade53b 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-01-04 +date: 2024-01-25 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 3812d80d05841..c42f3a405f1bd 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-01-04 +date: 2024-01-25 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 ad3d2637f65c3..983e26d7a6e2b 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-01-04 +date: 2024-01-25 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 1c655b9d37744..565fbe7e859a7 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-theme-browser-mocks'] --- import kbnCoreThemeBrowserMocksObj from './kbn_core_theme_browser_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_ui_settings_browser.mdx b/api_docs/kbn_core_ui_settings_browser.mdx index 933b7613d430e..2f7511d9ba794 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-01-04 +date: 2024-01-25 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 1759294c3ede1..1df9d96d2b666 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-01-04 +date: 2024-01-25 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 711277a14d313..63727770261f2 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-01-04 +date: 2024-01-25 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 94cca11eb7ee7..d8e254e16f2a1 100644 --- a/api_docs/kbn_core_ui_settings_common.devdocs.json +++ b/api_docs/kbn_core_ui_settings_common.devdocs.json @@ -517,7 +517,7 @@ "\nUI element type to represent the settings." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"image\" | \"select\" | \"json\" | \"markdown\" | \"array\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"select\" | \"image\" | \"color\" | \"json\" | \"array\" | \"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 48f92b475d5ea..43b4d3feff58c 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-01-04 +date: 2024-01-25 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 9ab86721089f6..17289705e5e56 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-01-04 +date: 2024-01-25 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 a177e83347b19..70ea32b31d7bb 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-01-04 +date: 2024-01-25 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 d82f2f595f8eb..421c3dc53aa9f 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-ui-settings-server-mocks'] --- import kbnCoreUiSettingsServerMocksObj from './kbn_core_ui_settings_server_mocks.devdocs.json'; diff --git a/api_docs/kbn_core_usage_data_server.mdx b/api_docs/kbn_core_usage_data_server.mdx index c1fce322f9508..9bfa13255df2f 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-01-04 +date: 2024-01-25 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 420a7ba708a2f..20b1c112d6e17 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-01-04 +date: 2024-01-25 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 8df47910b2611..75fe7b4e5b159 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-01-04 +date: 2024-01-25 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_settings_server.mdx b/api_docs/kbn_core_user_settings_server.mdx index b4252ff9424a0..5150bceb6d6c1 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-01-04 +date: 2024-01-25 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_internal.mdx b/api_docs/kbn_core_user_settings_server_internal.mdx index 3fcfb92e24af9..743d2eb8a8cea 100644 --- a/api_docs/kbn_core_user_settings_server_internal.mdx +++ b/api_docs/kbn_core_user_settings_server_internal.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-core-user-settings-server-internal title: "@kbn/core-user-settings-server-internal" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/core-user-settings-server-internal plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/core-user-settings-server-internal'] --- import kbnCoreUserSettingsServerInternalObj from './kbn_core_user_settings_server_internal.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 bcd3b45938020..e7167f0f9868c 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-01-04 +date: 2024-01-25 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 1756c3f446e3e..8fdfc193aeacb 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-01-04 +date: 2024-01-25 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 df724db842c5a..feb53eb15fddd 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-01-04 +date: 2024-01-25 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 f2a931c88273c..ad595ab216b72 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-01-04 +date: 2024-01-25 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 99d54015c69a1..885194b804f95 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-01-04 +date: 2024-01-25 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 e9a58ed538b8f..4331bbc7a03b6 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/cypress-config'] --- import kbnCypressConfigObj from './kbn_cypress_config.devdocs.json'; diff --git a/api_docs/kbn_data_forge.devdocs.json b/api_docs/kbn_data_forge.devdocs.json new file mode 100644 index 0000000000000..e0ddd5be65ed6 --- /dev/null +++ b/api_docs/kbn_data_forge.devdocs.json @@ -0,0 +1,474 @@ +{ + "id": "@kbn/data-forge", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup", + "type": "Function", + "tags": [], + "label": "cleanup", + "description": [], + "signature": [ + "({\n client,\n config: partialConfig,\n logger,\n}: { client: ", + "default", + "; config: { elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }; logger: ", + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + }, + "; }) => Promise" + ], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup.$1", + "type": "Object", + "tags": [], + "label": "{\n client,\n config: partialConfig,\n logger,\n}", + "description": [], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup.$1.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup.$1.config", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cleanup.$1.logger", + "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-data-forge/src/cleanup.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.cli", + "type": "Function", + "tags": [], + "label": "cli", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "x-pack/packages/kbn-data-forge/src/cli.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.createConfig", + "type": "Function", + "tags": [], + "label": "createConfig", + "description": [], + "signature": [ + "(partialConfig: { elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }) => { elasticsearch: { host: string; username: string; password: string; apiKey: string; installKibanaUser: boolean; }; kibana: { host: string; username: string; password: string; installAssets: boolean; }; indexing: { dataset: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\"; scenario: string; interval: number; eventsPerCycle: number; payloadSize: number; concurrency: number; reduceWeekendTrafficBy: number; ephemeralProjectIds: number; }; schedule: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[]; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/lib/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.createConfig.$1", + "type": "Object", + "tags": [], + "label": "partialConfig", + "description": [], + "signature": [ + "{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/lib/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate", + "type": "Function", + "tags": [], + "label": "generate", + "description": [], + "signature": [ + "({ client, config: partialConfig, logger, }: { client: ", + "default", + "; config: { elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }; logger: ", + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + }, + "; }) => Promise" + ], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate.$1", + "type": "Object", + "tags": [], + "label": "{\n client,\n config: partialConfig,\n logger,\n}", + "description": [], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate.$1.client", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate.$1.config", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.generate.$1.logger", + "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-data-forge/src/generate.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.readConfig", + "type": "Function", + "tags": [], + "label": "readConfig", + "description": [], + "signature": [ + "(filePath: string) => Promise<{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }>" + ], + "path": "x-pack/packages/kbn-data-forge/src/lib/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.readConfig.$1", + "type": "string", + "tags": [], + "label": "filePath", + "description": [], + "signature": [ + "string" + ], + "path": "x-pack/packages/kbn-data-forge/src/lib/create_config.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.run", + "type": "Function", + "tags": [], + "label": "run", + "description": [], + "signature": [ + "(config: { elasticsearch: { host: string; username: string; password: string; apiKey: string; installKibanaUser: boolean; }; kibana: { host: string; username: string; password: string; installAssets: boolean; }; indexing: { dataset: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\"; scenario: string; interval: number; eventsPerCycle: number; payloadSize: number; concurrency: number; reduceWeekendTrafficBy: number; ephemeralProjectIds: number; }; schedule: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[]; }, client: ", + "default", + ", logger: ", + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + }, + ") => Promise" + ], + "path": "x-pack/packages/kbn-data-forge/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.run.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "{ elasticsearch: { host: string; username: string; password: string; apiKey: string; installKibanaUser: boolean; }; kibana: { host: string; username: string; password: string; installAssets: boolean; }; indexing: { dataset: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\"; scenario: string; interval: number; eventsPerCycle: number; payloadSize: number; concurrency: number; reduceWeekendTrafficBy: number; ephemeralProjectIds: number; }; schedule: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[]; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.run.$2", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "x-pack/packages/kbn-data-forge/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.run.$3", + "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-data-forge/src/run.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.Config", + "type": "Type", + "tags": [], + "label": "Config", + "description": [], + "signature": [ + "{ elasticsearch: { host: string; username: string; password: string; apiKey: string; installKibanaUser: boolean; }; kibana: { host: string; username: string; password: string; installAssets: boolean; }; indexing: { dataset: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\"; scenario: string; interval: number; eventsPerCycle: number; payloadSize: number; concurrency: number; reduceWeekendTrafficBy: number; ephemeralProjectIds: number; }; schedule: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[]; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.Dataset", + "type": "Type", + "tags": [], + "label": "Dataset", + "description": [], + "signature": [ + "\"fake_hosts\" | \"fake_logs\" | \"fake_stack\"" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.EventsPerCycle", + "type": "Type", + "tags": [], + "label": "EventsPerCycle", + "description": [], + "signature": [ + "number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; })" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.MetricEventDef", + "type": "Type", + "tags": [], + "label": "MetricEventDef", + "description": [], + "signature": [ + "{ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.PartialConfig", + "type": "Type", + "tags": [], + "label": "PartialConfig", + "description": [], + "signature": [ + "{ elasticsearch?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; apiKey?: string | undefined; installKibanaUser?: boolean | undefined; } | undefined; kibana?: { host?: string | undefined; username?: string | undefined; password?: string | undefined; installAssets?: boolean | undefined; } | undefined; indexing?: { dataset?: \"fake_hosts\" | \"fake_logs\" | \"fake_stack\" | undefined; scenario?: string | undefined; interval?: number | undefined; eventsPerCycle?: number | undefined; payloadSize?: number | undefined; concurrency?: number | undefined; reduceWeekendTrafficBy?: number | undefined; ephemeralProjectIds?: number | undefined; } | undefined; schedule?: ({ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.Schedule", + "type": "Type", + "tags": [], + "label": "Schedule", + "description": [], + "signature": [ + "{ template: string; start: string; end: string | boolean; } & { eventsPerCycle?: number | ({ start: number; end: number; method: \"linear\" | \"exp\" | \"sine\"; } & { options?: { period?: number | undefined; } | undefined; }) | undefined; interval?: number | undefined; delayInMinutes?: number | undefined; delayEveryMinutes?: number | undefined; randomness?: number | undefined; metrics?: ({ name: string; method: \"linear\" | \"exp\" | \"sine\"; start: number; end: number; } & { period?: number | undefined; randomness?: number | undefined; })[] | undefined; }" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-forge", + "id": "def-common.TransitionMethod", + "type": "Type", + "tags": [], + "label": "TransitionMethod", + "description": [], + "signature": [ + "\"linear\" | \"exp\" | \"sine\"" + ], + "path": "x-pack/packages/kbn-data-forge/src/types/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_data_forge.mdx b/api_docs/kbn_data_forge.mdx new file mode 100644 index 0000000000000..161639ded192d --- /dev/null +++ b/api_docs/kbn_data_forge.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: kibKbnDataForgePluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-forge'] +--- +import kbnDataForgeObj from './kbn_data_forge.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 | +|-------------------|-----------|------------------------|-----------------| +| 26 | 0 | 26 | 0 | + +## Common + +### Functions + + +### Consts, variables and types + + diff --git a/api_docs/kbn_data_service.mdx b/api_docs/kbn_data_service.mdx index 643081b1d4dae..24368144274e7 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_data_stream_adapter.devdocs.json new file mode 100644 index 0000000000000..f9c2ca34a11ec --- /dev/null +++ b/api_docs/kbn_data_stream_adapter.devdocs.json @@ -0,0 +1,1315 @@ +{ + "id": "@kbn/data-stream-adapter", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter", + "type": "Class", + "tags": [], + "label": "DataStreamAdapter", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.kibanaVersion", + "type": "string", + "tags": [], + "label": "kibanaVersion", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.totalFieldsLimit", + "type": "number", + "tags": [], + "label": "totalFieldsLimit", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.componentTemplates", + "type": "Array", + "tags": [], + "label": "componentTemplates", + "description": [], + "signature": [ + "ClusterPutComponentTemplateRequest", + "[]" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.indexTemplates", + "type": "Array", + "tags": [], + "label": "indexTemplates", + "description": [], + "signature": [ + "IndicesPutIndexTemplateRequest", + "[]" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.installed", + "type": "boolean", + "tags": [], + "label": "installed", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.Unnamed.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.DataStreamAdapterParams", + "text": "DataStreamAdapterParams" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.setComponentTemplate", + "type": "Function", + "tags": [], + "label": "setComponentTemplate", + "description": [], + "signature": [ + "(params: ", + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.SetComponentTemplateParams", + "text": "SetComponentTemplateParams" + }, + ") => void" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.setComponentTemplate.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.SetComponentTemplateParams", + "text": "SetComponentTemplateParams" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.setIndexTemplate", + "type": "Function", + "tags": [], + "label": "setIndexTemplate", + "description": [], + "signature": [ + "(params: ", + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.SetIndexTemplateParams", + "text": "SetIndexTemplateParams" + }, + ") => void" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.setIndexTemplate.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.SetIndexTemplateParams", + "text": "SetIndexTemplateParams" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.getInstallFn", + "type": "Function", + "tags": [], + "label": "getInstallFn", + "description": [], + "signature": [ + "({ logger, pluginStop$, tasksTimeoutMs }: ", + "GetInstallFnParams", + ") => (promise: Promise, description?: string | undefined) => Promise" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.getInstallFn.$1", + "type": "Object", + "tags": [], + "label": "{ logger, pluginStop$, tasksTimeoutMs }", + "description": [], + "signature": [ + "GetInstallFnParams" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.install", + "type": "Function", + "tags": [], + "label": "install", + "description": [], + "signature": [ + "({ logger, esClient: esClientToResolve, pluginStop$, tasksTimeoutMs, }: ", + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.InstallParams", + "text": "InstallParams" + }, + ") => Promise" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapter.install.$1", + "type": "Object", + "tags": [], + "label": "{\n logger,\n esClient: esClientToResolve,\n pluginStop$,\n tasksTimeoutMs,\n }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.InstallParams", + "text": "InstallParams" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter", + "type": "Class", + "tags": [], + "label": "DataStreamSpacesAdapter", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.DataStreamSpacesAdapter", + "text": "DataStreamSpacesAdapter" + }, + " extends ", + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.DataStreamAdapter", + "text": "DataStreamAdapter" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.Unnamed.$1", + "type": "string", + "tags": [], + "label": "prefix", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.DataStreamAdapterParams", + "text": "DataStreamAdapterParams" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.install", + "type": "Function", + "tags": [], + "label": "install", + "description": [], + "signature": [ + "({ logger, esClient: esClientToResolve, pluginStop$, tasksTimeoutMs, }: ", + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.InstallParams", + "text": "InstallParams" + }, + ") => Promise" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.install.$1", + "type": "Object", + "tags": [], + "label": "{\n logger,\n esClient: esClientToResolve,\n pluginStop$,\n tasksTimeoutMs,\n }", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.InstallParams", + "text": "InstallParams" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.installSpace", + "type": "Function", + "tags": [], + "label": "installSpace", + "description": [], + "signature": [ + "(spaceId: string) => Promise" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.installSpace.$1", + "type": "string", + "tags": [], + "label": "spaceId", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.getInstalledSpaceName", + "type": "Function", + "tags": [], + "label": "getInstalledSpaceName", + "description": [], + "signature": [ + "(spaceId: string) => Promise" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamSpacesAdapter.getInstalledSpaceName.$1", + "type": "string", + "tags": [], + "label": "spaceId", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.retryTransientEsErrors", + "type": "Function", + "tags": [], + "label": "retryTransientEsErrors", + "description": [], + "signature": [ + "(esCall: () => Promise, { logger, attempt }: { logger: ", + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + }, + "; attempt?: number | undefined; }) => Promise" + ], + "path": "packages/kbn-data-stream-adapter/src/retry_transient_es_errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.retryTransientEsErrors.$1", + "type": "Function", + "tags": [], + "label": "esCall", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-data-stream-adapter/src/retry_transient_es_errors.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.retryTransientEsErrors.$2", + "type": "Object", + "tags": [], + "label": "{ logger, attempt = 0 }", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/retry_transient_es_errors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.retryTransientEsErrors.$2.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + } + ], + "path": "packages/kbn-data-stream-adapter/src/retry_transient_es_errors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.retryTransientEsErrors.$2.attempt", + "type": "number", + "tags": [], + "label": "attempt", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/retry_transient_es_errors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.AllowedValue", + "type": "Interface", + "tags": [], + "label": "AllowedValue", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.AllowedValue.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.AllowedValue.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapterParams", + "type": "Interface", + "tags": [], + "label": "DataStreamAdapterParams", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapterParams.kibanaVersion", + "type": "string", + "tags": [], + "label": "kibanaVersion", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.DataStreamAdapterParams.totalFieldsLimit", + "type": "number", + "tags": [], + "label": "totalFieldsLimit", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata", + "type": "Interface", + "tags": [], + "label": "EcsMetadata", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.allowed_values", + "type": "Array", + "tags": [], + "label": "allowed_values", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.AllowedValue", + "text": "AllowedValue" + }, + "[] | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.dashed_name", + "type": "string", + "tags": [], + "label": "dashed_name", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.doc_values", + "type": "CompoundType", + "tags": [], + "label": "doc_values", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.example", + "type": "CompoundType", + "tags": [], + "label": "example", + "description": [], + "signature": [ + "string | number | boolean | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.ignore_above", + "type": "number", + "tags": [], + "label": "ignore_above", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.index", + "type": "CompoundType", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.level", + "type": "string", + "tags": [], + "label": "level", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.multi_fields", + "type": "Array", + "tags": [], + "label": "multi_fields", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.MultiField", + "text": "MultiField" + }, + "[] | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.normalize", + "type": "Array", + "tags": [], + "label": "normalize", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.required", + "type": "CompoundType", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.scaling_factor", + "type": "number", + "tags": [], + "label": "scaling_factor", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.short", + "type": "string", + "tags": [], + "label": "short", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsMetadata.properties", + "type": "Object", + "tags": [], + "label": "properties", + "description": [], + "signature": [ + "Record | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.FieldMap", + "type": "Interface", + "tags": [], + "label": "FieldMap", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.FieldMap.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[key: string]: { type: string; required: boolean; array?: boolean | undefined; doc_values?: boolean | undefined; enabled?: boolean | undefined; format?: string | undefined; ignore_above?: number | undefined; ... 5 more ...; properties?: Record<...> | undefined; }", + "description": [], + "signature": [ + "[key: string]: { type: string; required: boolean; array?: boolean | undefined; doc_values?: boolean | undefined; enabled?: boolean | undefined; format?: string | undefined; ignore_above?: number | undefined; multi_fields?: ", + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.MultiField", + "text": "MultiField" + }, + "[] | undefined; index?: boolean | undefined; path?: string | undefined; scaling_factor?: number | undefined; dynamic?: boolean | \"strict\" | undefined; properties?: Record | undefined; }" + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.InstallParams", + "type": "Interface", + "tags": [], + "label": "InstallParams", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.InstallParams.logger", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.InstallParams.esClient", + "type": "CompoundType", + "tags": [], + "label": "esClient", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "common", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-common.ElasticsearchClient", + "text": "ElasticsearchClient" + }, + " | Promise<", + { + "pluginId": "@kbn/core-elasticsearch-server", + "scope": "common", + "docId": "kibKbnCoreElasticsearchServerPluginApi", + "section": "def-common.ElasticsearchClient", + "text": "ElasticsearchClient" + }, + ">" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.InstallParams.pluginStop$", + "type": "Object", + "tags": [], + "label": "pluginStop$", + "description": [], + "signature": [ + "Subject", + "" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.InstallParams.tasksTimeoutMs", + "type": "number", + "tags": [], + "label": "tasksTimeoutMs", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.MultiField", + "type": "Interface", + "tags": [], + "label": "MultiField", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.MultiField.flat_name", + "type": "string", + "tags": [], + "label": "flat_name", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.MultiField.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.MultiField.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/field_maps/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetComponentTemplateParams", + "type": "Interface", + "tags": [], + "label": "SetComponentTemplateParams", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetComponentTemplateParams.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetComponentTemplateParams.fieldMap", + "type": "Object", + "tags": [], + "label": "fieldMap", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.FieldMap", + "text": "FieldMap" + } + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetComponentTemplateParams.settings", + "type": "CompoundType", + "tags": [], + "label": "settings", + "description": [], + "signature": [ + "IndicesIndexSettings", + " | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetComponentTemplateParams.dynamic", + "type": "CompoundType", + "tags": [], + "label": "dynamic", + "description": [], + "signature": [ + "boolean | \"strict\" | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetIndexTemplateParams", + "type": "Interface", + "tags": [], + "label": "SetIndexTemplateParams", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetIndexTemplateParams.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetIndexTemplateParams.componentTemplateRefs", + "type": "Array", + "tags": [], + "label": "componentTemplateRefs", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetIndexTemplateParams.namespace", + "type": "string", + "tags": [], + "label": "namespace", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetIndexTemplateParams.template", + "type": "Object", + "tags": [], + "label": "template", + "description": [], + "signature": [ + "IndicesPutIndexTemplateIndexTemplateMapping", + " | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.SetIndexTemplateParams.hidden", + "type": "CompoundType", + "tags": [], + "label": "hidden", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-data-stream-adapter/src/data_stream_adapter.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.EcsFieldMap", + "type": "Type", + "tags": [], + "label": "EcsFieldMap", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.FieldMap", + "text": "FieldMap" + } + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/ecs_field_map.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "@kbn/data-stream-adapter", + "id": "def-common.ecsFieldMap", + "type": "Object", + "tags": [], + "label": "ecsFieldMap", + "description": [], + "signature": [ + { + "pluginId": "@kbn/data-stream-adapter", + "scope": "common", + "docId": "kibKbnDataStreamAdapterPluginApi", + "section": "def-common.FieldMap", + "text": "FieldMap" + } + ], + "path": "packages/kbn-data-stream-adapter/src/field_maps/ecs_field_map.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ] + } +} \ No newline at end of file diff --git a/api_docs/kbn_data_stream_adapter.mdx b/api_docs/kbn_data_stream_adapter.mdx new file mode 100644 index 0000000000000..743c120051ebb --- /dev/null +++ b/api_docs/kbn_data_stream_adapter.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: kibKbnDataStreamAdapterPluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/data-stream-adapter'] +--- +import kbnDataStreamAdapterObj from './kbn_data_stream_adapter.devdocs.json'; + + + +Contact [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 80 | 0 | 80 | 1 | + +## Common + +### Objects + + +### Functions + + +### Classes + + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/kbn_datemath.devdocs.json b/api_docs/kbn_datemath.devdocs.json index 71d5b783708c0..6d6da3f87394b 100644 --- a/api_docs/kbn_datemath.devdocs.json +++ b/api_docs/kbn_datemath.devdocs.json @@ -119,7 +119,7 @@ "label": "Unit", "description": [], "signature": [ - "\"m\" | \"y\" | \"M\" | \"w\" | \"d\" | \"h\" | \"s\" | \"ms\"" + "\"m\" | \"s\" | \"y\" | \"M\" | \"w\" | \"d\" | \"h\" | \"ms\"" ], "path": "packages/kbn-datemath/index.ts", "deprecated": false, @@ -200,7 +200,7 @@ "label": "UnitsMap", "description": [], "signature": [ - "{ m: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; y: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; M: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; w: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; d: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; h: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; s: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; ms: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; }" + "{ m: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; s: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; y: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; M: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; w: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; d: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; h: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; ms: { weight: number; type: \"fixed\" | \"calendar\" | \"mixed\"; base: number; }; }" ], "path": "packages/kbn-datemath/index.ts", "deprecated": false, diff --git a/api_docs/kbn_datemath.mdx b/api_docs/kbn_datemath.mdx index 81c40771e0bb7..05261eec07d6a 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-01-04 +date: 2024-01-25 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 2f5c0b0c898e2..24dc67dc7f43c 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-01-04 +date: 2024-01-25 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 be2b50795b6b8..17f33c8e69eb0 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-devtools'] --- import kbnDeeplinksDevtoolsObj from './kbn_deeplinks_devtools.devdocs.json'; diff --git a/api_docs/kbn_deeplinks_management.devdocs.json b/api_docs/kbn_deeplinks_management.devdocs.json index 7a80670f6b9e4..551aa3f65c612 100644 --- a/api_docs/kbn_deeplinks_management.devdocs.json +++ b/api_docs/kbn_deeplinks_management.devdocs.json @@ -45,7 +45,7 @@ "label": "DeepLinkId", "description": [], "signature": [ - "\"fleet\" | \"monitoring\" | \"management\" | \"integrations\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:settings\" | \"management:dataViews\" | \"management:spaces\" | \"management:reporting\" | \"management:rollup_jobs\" | \"management:snapshot_restore\" | \"management:aiAssistantManagementSelection\" | \"management:aiAssistantManagementObservability\" | \"management:api_keys\" | \"management:cross_cluster_replication\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\"" + "\"fleet\" | \"monitoring\" | \"management\" | \"integrations\" | \"osquery\" | \"management:transform\" | \"management:watcher\" | \"management:cases\" | \"management:tags\" | \"management:settings\" | \"management:dataViews\" | \"management:spaces\" | \"management:reporting\" | \"management:rollup_jobs\" | \"management:aiAssistantManagementSelection\" | \"management:aiAssistantManagementObservability\" | \"management:api_keys\" | \"management:cross_cluster_replication\" | \"management:index_lifecycle_management\" | \"management:index_management\" | \"management:ingest_pipelines\" | \"management:jobsListLink\" | \"management:objects\" | \"management:pipelines\" | \"management:remote_clusters\" | \"management:snapshot_restore\" | \"management:triggersActions\" | \"management:triggersActionsConnectors\"" ], "path": "packages/deeplinks/management/deep_links.ts", "deprecated": false, @@ -60,7 +60,7 @@ "label": "LinkId", "description": [], "signature": [ - "\"transform\" | \"watcher\" | \"cases\" | \"tags\" | \"settings\" | \"dataViews\" | \"spaces\" | \"reporting\" | \"rollup_jobs\" | \"snapshot_restore\" | \"aiAssistantManagementSelection\" | \"aiAssistantManagementObservability\" | \"api_keys\" | \"cross_cluster_replication\" | \"index_lifecycle_management\" | \"index_management\" | \"ingest_pipelines\" | \"jobsListLink\" | \"objects\" | \"pipelines\" | \"remote_clusters\" | \"triggersActions\" | \"triggersActionsConnectors\"" + "\"transform\" | \"watcher\" | \"cases\" | \"tags\" | \"settings\" | \"dataViews\" | \"spaces\" | \"reporting\" | \"rollup_jobs\" | \"aiAssistantManagementSelection\" | \"aiAssistantManagementObservability\" | \"api_keys\" | \"cross_cluster_replication\" | \"index_lifecycle_management\" | \"index_management\" | \"ingest_pipelines\" | \"jobsListLink\" | \"objects\" | \"pipelines\" | \"remote_clusters\" | \"snapshot_restore\" | \"triggersActions\" | \"triggersActionsConnectors\"" ], "path": "packages/deeplinks/management/deep_links.ts", "deprecated": false, diff --git a/api_docs/kbn_deeplinks_management.mdx b/api_docs/kbn_deeplinks_management.mdx index 9a9c64b5db9b0..ecb4bf3c1c839 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-01-04 +date: 2024-01-25 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 7afa5a8820ef3..ba1e3569bfe26 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-01-04 +date: 2024-01-25 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 c1148395fe4d8..31cd9a96e1f1e 100644 --- a/api_docs/kbn_deeplinks_observability.devdocs.json +++ b/api_docs/kbn_deeplinks_observability.devdocs.json @@ -444,7 +444,7 @@ "label": "AppId", "description": [], "signature": [ - "\"metrics\" | \"apm\" | \"logs\" | \"observability-overview\" | \"observability-log-explorer\" | \"observabilityOnboarding\"" + "\"metrics\" | \"synthetics\" | \"apm\" | \"logs\" | \"observability-overview\" | \"observability-log-explorer\" | \"observabilityOnboarding\"" ], "path": "packages/deeplinks/observability/deep_links.ts", "deprecated": false, @@ -495,7 +495,7 @@ "section": "def-common.AppId", "text": "AppId" }, - " | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:rules\" | \"observability-overview:alerts\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"observability-overview:slos\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\"" + " | \"logs:settings\" | \"logs:stream\" | \"logs:log-categories\" | \"logs:anomalies\" | \"observability-overview:cases\" | \"observability-overview:rules\" | \"observability-overview:alerts\" | \"observability-overview:cases_create\" | \"observability-overview:cases_configure\" | \"observability-overview:slos\" | \"metrics:settings\" | \"metrics:hosts\" | \"metrics:inventory\" | \"metrics:metrics-explorer\" | \"apm:traces\" | \"apm:dependencies\" | \"apm:service-map\" | \"apm:settings\" | \"apm:services\" | \"apm:service-groups-list\" | \"apm:storage-explorer\" | \"synthetics:management\" | \"synthetics:overview\"" ], "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 f43d2395f1399..7a44a1558759c 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-01-04 +date: 2024-01-25 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 f213317ca7a0a..e3485b0e9ffc8 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/deeplinks-search'] --- import kbnDeeplinksSearchObj from './kbn_deeplinks_search.devdocs.json'; diff --git a/api_docs/kbn_default_nav_analytics.mdx b/api_docs/kbn_default_nav_analytics.mdx index 2cac4b3d4fce7..e27557884d230 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-01-04 +date: 2024-01-25 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 6fcd2c17b24e4..d57a61fff7fdb 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-01-04 +date: 2024-01-25 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 d6165f2f72d22..a73a7bf7c016d 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-01-04 +date: 2024-01-25 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 b5a858abc5056..56e87da8381ff 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-01-04 +date: 2024-01-25 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 ff8d6d8c74371..0febf21853364 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-cli-errors'] --- import kbnDevCliErrorsObj from './kbn_dev_cli_errors.devdocs.json'; diff --git a/api_docs/kbn_dev_cli_runner.mdx b/api_docs/kbn_dev_cli_runner.mdx index 41dc8147ad3a4..322db9b8512fd 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-01-04 +date: 2024-01-25 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 e4581551a701a..2380f1923a215 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-01-04 +date: 2024-01-25 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 d8eba73051f31..deed1bf44762b 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/dev-utils'] --- import kbnDevUtilsObj from './kbn_dev_utils.devdocs.json'; diff --git a/api_docs/kbn_discover_utils.mdx b/api_docs/kbn_discover_utils.mdx index 834b54a7cc8b5..f4b33d7e2a650 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/discover-utils'] --- import kbnDiscoverUtilsObj from './kbn_discover_utils.devdocs.json'; diff --git a/api_docs/kbn_doc_links.mdx b/api_docs/kbn_doc_links.mdx index 26ad9f0b338ad..3f8a212c76b38 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/doc-links'] --- import kbnDocLinksObj from './kbn_doc_links.devdocs.json'; diff --git a/api_docs/kbn_docs_utils.devdocs.json b/api_docs/kbn_docs_utils.devdocs.json index 285bf22a53691..da6dd5935a733 100644 --- a/api_docs/kbn_docs_utils.devdocs.json +++ b/api_docs/kbn_docs_utils.devdocs.json @@ -19,6 +19,76 @@ "common": { "classes": [], "functions": [ + { + "parentPluginId": "@kbn/docs-utils", + "id": "def-common.findPlugins", + "type": "Function", + "tags": [], + "label": "findPlugins", + "description": [], + "signature": [ + "(pluginOrPackageFilter: string[] | undefined) => ", + "PluginOrPackage", + "[]" + ], + "path": "packages/kbn-docs-utils/src/find_plugins.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/docs-utils", + "id": "def-common.findPlugins.$1", + "type": "Array", + "tags": [], + "label": "pluginOrPackageFilter", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-docs-utils/src/find_plugins.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/docs-utils", + "id": "def-common.findTeamPlugins", + "type": "Function", + "tags": [], + "label": "findTeamPlugins", + "description": [], + "signature": [ + "(team: string) => ", + "PluginOrPackage", + "[]" + ], + "path": "packages/kbn-docs-utils/src/find_plugins.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/docs-utils", + "id": "def-common.findTeamPlugins.$1", + "type": "string", + "tags": [], + "label": "team", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-docs-utils/src/find_plugins.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/docs-utils", "id": "def-common.runBuildApiDocsCli", diff --git a/api_docs/kbn_docs_utils.mdx b/api_docs/kbn_docs_utils.mdx index 97ec6e097df36..d96001a8eceb7 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/docs-utils'] --- import kbnDocsUtilsObj from './kbn_docs_utils.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 | |-------------------|-----------|------------------------|-----------------| -| 1 | 0 | 1 | 0 | +| 5 | 0 | 5 | 1 | ## Common diff --git a/api_docs/kbn_dom_drag_drop.mdx b/api_docs/kbn_dom_drag_drop.mdx index 69962080ec4df..c621799bf48e3 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-01-04 +date: 2024-01-25 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 b9a95c21a65f4..c71bca3c62148 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ebt-tools'] --- import kbnEbtToolsObj from './kbn_ebt_tools.devdocs.json'; diff --git a/api_docs/kbn_ecs.mdx b/api_docs/kbn_ecs.mdx index 655a8f4727802..adeb8ec0789a0 100644 --- a/api_docs/kbn_ecs.mdx +++ b/api_docs/kbn_ecs.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-ecs title: "@kbn/ecs" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/ecs plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs'] --- import kbnEcsObj from './kbn_ecs.devdocs.json'; diff --git a/api_docs/kbn_ecs_data_quality_dashboard.mdx b/api_docs/kbn_ecs_data_quality_dashboard.mdx index 5f82c57739561..47ad1622c33b6 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ecs-data-quality-dashboard'] --- import kbnEcsDataQualityDashboardObj from './kbn_ecs_data_quality_dashboard.devdocs.json'; diff --git a/api_docs/kbn_elastic_agent_utils.devdocs.json b/api_docs/kbn_elastic_agent_utils.devdocs.json index 9814a2afd0fa3..7d999aacc3ca5 100644 --- a/api_docs/kbn_elastic_agent_utils.devdocs.json +++ b/api_docs/kbn_elastic_agent_utils.devdocs.json @@ -431,7 +431,7 @@ "label": "AgentName", "description": [], "signature": [ - "\"java\" | \"ruby\" | \"go\" | \"dotnet\" | \"php\" | \"otlp\" | \"android/java\" | \"iOS/swift\" | \"rum-js\" | \"js-base\" | \"opentelemetry/webjs\" | \"opentelemetry/java\" | \"nodejs\" | \"python\" | \"opentelemetry/cpp\" | \"opentelemetry/dotnet\" | \"opentelemetry/erlang\" | \"opentelemetry/go\" | \"opentelemetry/nodejs\" | \"opentelemetry/php\" | \"opentelemetry/python\" | \"opentelemetry/ruby\" | \"opentelemetry/rust\" | \"opentelemetry/swift\" | \"opentelemetry/android\"" + "\"ruby\" | \"java\" | \"go\" | \"dotnet\" | \"php\" | \"otlp\" | \"android/java\" | \"iOS/swift\" | \"rum-js\" | \"js-base\" | \"opentelemetry/webjs\" | \"opentelemetry/java\" | \"nodejs\" | \"python\" | \"opentelemetry/cpp\" | \"opentelemetry/dotnet\" | \"opentelemetry/erlang\" | \"opentelemetry/go\" | \"opentelemetry/nodejs\" | \"opentelemetry/php\" | \"opentelemetry/python\" | \"opentelemetry/ruby\" | \"opentelemetry/rust\" | \"opentelemetry/swift\" | \"opentelemetry/android\"" ], "path": "packages/kbn-elastic-agent-utils/src/agent_names.ts", "deprecated": false, @@ -470,7 +470,7 @@ "\nWe cannot mark these arrays as const and derive their type\nbecause we need to be able to assign them as mutable entities for ES queries." ], "signature": [ - "\"java\" | \"ruby\" | \"go\" | \"dotnet\" | \"php\" | \"android/java\" | \"iOS/swift\" | \"rum-js\" | \"js-base\" | \"nodejs\" | \"python\"" + "\"ruby\" | \"java\" | \"go\" | \"dotnet\" | \"php\" | \"android/java\" | \"iOS/swift\" | \"rum-js\" | \"js-base\" | \"nodejs\" | \"python\"" ], "path": "packages/kbn-elastic-agent-utils/src/agent_names.ts", "deprecated": false, diff --git a/api_docs/kbn_elastic_agent_utils.mdx b/api_docs/kbn_elastic_agent_utils.mdx index c37ce828a8515..00987094c574f 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_elastic_assistant.devdocs.json index 3ac4e681392e9..e030fde8ab4f7 100644 --- a/api_docs/kbn_elastic_assistant.devdocs.json +++ b/api_docs/kbn_elastic_assistant.devdocs.json @@ -159,7 +159,7 @@ "label": "AssistantProvider", "description": [], "signature": [ - "({ actionTypeRegistry, alertsIndexPattern, assistantAvailability, assistantStreamingEnabled, assistantTelemetry, augmentMessageCodeBlocks, baseAllow, baseAllowReplacement, defaultAllow, defaultAllowReplacement, docLinks, basePath, basePromptContexts, baseQuickPrompts, baseSystemPrompts, children, getComments, http, getInitialConversations, modelEvaluatorEnabled, nameSpace, setConversations, setDefaultAllow, setDefaultAllowReplacement, title, toasts, }: React.PropsWithChildren<", + "({ actionTypeRegistry, alertsIndexPattern, assistantAvailability, assistantTelemetry, augmentMessageCodeBlocks, baseAllow, baseAllowReplacement, defaultAllow, defaultAllowReplacement, docLinks, basePath, basePromptContexts, baseQuickPrompts, baseSystemPrompts, children, getComments, http, getInitialConversations, nameSpace, setConversations, setDefaultAllow, setDefaultAllowReplacement, title, toasts, }: React.PropsWithChildren<", "AssistantProviderProps", ">) => JSX.Element" ], @@ -172,7 +172,7 @@ "id": "def-public.AssistantProvider.$1", "type": "CompoundType", "tags": [], - "label": "{\n actionTypeRegistry,\n alertsIndexPattern,\n assistantAvailability,\n assistantStreamingEnabled = false,\n assistantTelemetry,\n augmentMessageCodeBlocks,\n baseAllow,\n baseAllowReplacement,\n defaultAllow,\n defaultAllowReplacement,\n docLinks,\n basePath,\n basePromptContexts = [],\n baseQuickPrompts = [],\n baseSystemPrompts = BASE_SYSTEM_PROMPTS,\n children,\n getComments,\n http,\n getInitialConversations,\n modelEvaluatorEnabled = false,\n nameSpace = DEFAULT_ASSISTANT_NAMESPACE,\n setConversations,\n setDefaultAllow,\n setDefaultAllowReplacement,\n title = DEFAULT_ASSISTANT_TITLE,\n toasts,\n}", + "label": "{\n actionTypeRegistry,\n alertsIndexPattern,\n assistantAvailability,\n assistantTelemetry,\n augmentMessageCodeBlocks,\n baseAllow,\n baseAllowReplacement,\n defaultAllow,\n defaultAllowReplacement,\n docLinks,\n basePath,\n basePromptContexts = [],\n baseQuickPrompts = [],\n baseSystemPrompts = BASE_SYSTEM_PROMPTS,\n children,\n getComments,\n http,\n getInitialConversations,\n nameSpace = DEFAULT_ASSISTANT_NAMESPACE,\n setConversations,\n setDefaultAllow,\n setDefaultAllowReplacement,\n title = DEFAULT_ASSISTANT_TITLE,\n toasts,\n}", "description": [], "signature": [ "React.PropsWithChildren<", diff --git a/api_docs/kbn_elastic_assistant.mdx b/api_docs/kbn_elastic_assistant.mdx index 1d76023b58651..7db3662180f6b 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-01-04 +date: 2024-01-25 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 61136c90e37b6..70868de1afb0b 100644 --- a/api_docs/kbn_elastic_assistant_common.devdocs.json +++ b/api_docs/kbn_elastic_assistant_common.devdocs.json @@ -453,7 +453,73 @@ ], "interfaces": [], "enums": [], - "misc": [], - "objects": [] + "misc": [ + { + "parentPluginId": "@kbn/elastic-assistant-common", + "id": "def-common.AssistantFeatures", + "type": "Type", + "tags": [], + "label": "AssistantFeatures", + "description": [ + "\nInterface for features available to the elastic assistant" + ], + "signature": [ + "{ readonly assistantModelEvaluation: boolean; readonly assistantStreamingEnabled: boolean; }" + ], + "path": "x-pack/packages/kbn-elastic-assistant-common/impl/capabilities/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/elastic-assistant-common", + "id": "def-common.GetCapabilitiesResponse", + "type": "Type", + "tags": [], + "label": "GetCapabilitiesResponse", + "description": [], + "signature": [ + "{ assistantModelEvaluation: boolean; assistantStreamingEnabled: boolean; }" + ], + "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/capabilities/get_capabilities_route.gen.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "@kbn/elastic-assistant-common", + "id": "def-common.defaultAssistantFeatures", + "type": "Object", + "tags": [], + "label": "defaultAssistantFeatures", + "description": [ + "\nDefault features available to the elastic assistant" + ], + "signature": [ + "{ readonly assistantModelEvaluation: false; readonly assistantStreamingEnabled: false; }" + ], + "path": "x-pack/packages/kbn-elastic-assistant-common/impl/capabilities/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/elastic-assistant-common", + "id": "def-common.GetCapabilitiesResponse", + "type": "Object", + "tags": [], + "label": "GetCapabilitiesResponse", + "description": [], + "signature": [ + "Zod.ZodObject<{ assistantModelEvaluation: Zod.ZodBoolean; assistantStreamingEnabled: Zod.ZodBoolean; }, \"strip\", Zod.ZodTypeAny, { assistantModelEvaluation: boolean; assistantStreamingEnabled: boolean; }, { assistantModelEvaluation: boolean; assistantStreamingEnabled: boolean; }>" + ], + "path": "x-pack/packages/kbn-elastic-assistant-common/impl/schemas/capabilities/get_capabilities_route.gen.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ] } } \ No newline at end of file diff --git a/api_docs/kbn_elastic_assistant_common.mdx b/api_docs/kbn_elastic_assistant_common.mdx index dc32cd0edca70..c9b67b7a397db 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/elastic-assistant-common'] --- import kbnElasticAssistantCommonObj from './kbn_elastic_assistant_common.devdocs.json'; @@ -21,10 +21,16 @@ Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/secur | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 30 | 0 | 30 | 0 | +| 34 | 0 | 32 | 0 | ## Common +### Objects + + ### Functions +### Consts, variables and types + + diff --git a/api_docs/kbn_es.devdocs.json b/api_docs/kbn_es.devdocs.json index 00729743dcb2e..b4371b88843b6 100644 --- a/api_docs/kbn_es.devdocs.json +++ b/api_docs/kbn_es.devdocs.json @@ -849,6 +849,33 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/es", + "id": "def-common.SERVERLESS_ROLES_ROOT_PATH", + "type": "string", + "tags": [], + "label": "SERVERLESS_ROLES_ROOT_PATH", + "description": [], + "path": "packages/kbn-es/src/paths.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/es", + "id": "def-common.ServerlessProjectType", + "type": "Type", + "tags": [], + "label": "ServerlessProjectType", + "description": [], + "signature": [ + "\"security\" | \"es\" | \"oblt\"" + ], + "path": "packages/kbn-es/src/utils/docker.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/es", "id": "def-common.SYSTEM_INDICES_SUPERUSER", diff --git a/api_docs/kbn_es.mdx b/api_docs/kbn_es.mdx index fef9a0cc1a18e..60b77f98aa581 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es'] --- import kbnEsObj from './kbn_es.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 | |-------------------|-----------|------------------------|-----------------| -| 48 | 0 | 33 | 7 | +| 50 | 0 | 35 | 7 | ## Common diff --git a/api_docs/kbn_es_archiver.mdx b/api_docs/kbn_es_archiver.mdx index cb8a2c1ea7cb0..dbcf14738a35d 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-01-04 +date: 2024-01-25 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 211c745a6f22a..d2d9345c93a4f 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-01-04 +date: 2024-01-25 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 bbf0ed6c546aa..4b4db9a5d711a 100644 --- a/api_docs/kbn_es_query.devdocs.json +++ b/api_docs/kbn_es_query.devdocs.json @@ -4453,13 +4453,13 @@ }, "; } | undefined; } | { meta: { negate: boolean | undefined; type: string | undefined; params: { query: ", "FilterMetaParams", - " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): string | undefined; push(...items: string[]): number; concat(...items: ConcatArray[]): string[]; concat(...items: (string | ConcatArray)[]): string[]; join(separator?: string | undefined): string; reverse(): string[]; shift(): string | undefined; slice(start?: number | undefined, end?: number | undefined): string[]; sort(compareFn?: ((a: string, b: string) => number) | undefined): string[]; splice(start: number, deleteCount?: number | undefined): string[]; splice(start: number, deleteCount: number, ...items: string[]): string[]; unshift(...items: string[]): number; indexOf(searchElement: string, fromIndex?: number | undefined): number; lastIndexOf(searchElement: string, fromIndex?: number | undefined): number; every(predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): boolean; some(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any): void; map(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any): U[]; filter(predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string[]; reduce(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; reduce(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; reduce(callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; reduceRight(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; reduceRight(callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; find(predicate: (this: void, value: string, index: number, obj: string[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: string, index: number, obj: string[]) => unknown, thisArg?: any): string | undefined; findIndex(predicate: (value: string, index: number, obj: string[]) => unknown, thisArg?: any): number; fill(value: string, start?: number | undefined, end?: number | undefined): string[]; copyWithin(target: number, start: number, end?: number | undefined): string[]; entries(): IterableIterator<[number, string]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: string, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: string, index: number, array: string[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): string | undefined; } | { query: ", + " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): string | undefined; push(...items: string[]): number; concat(...items: ConcatArray[]): string[]; concat(...items: (string | ConcatArray)[]): string[]; join(separator?: string | undefined): string; reverse(): string[]; shift(): string | undefined; slice(start?: number | undefined, end?: number | undefined): string[]; sort(compareFn?: ((a: string, b: string) => number) | undefined): string[]; splice(start: number, deleteCount?: number | undefined): string[]; splice(start: number, deleteCount: number, ...items: string[]): string[]; unshift(...items: string[]): number; indexOf(searchElement: string, fromIndex?: number | undefined): number; lastIndexOf(searchElement: string, fromIndex?: number | undefined): number; every(predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): boolean; some(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: string, index: number, array: string[]) => void, thisArg?: any): void; map(callbackfn: (value: string, index: number, array: string[]) => U, thisArg?: any): U[]; filter(predicate: (value: string, index: number, array: string[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: string, index: number, array: string[]) => unknown, thisArg?: any): string[]; reduce(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; reduce(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; reduce(callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string): string; reduceRight(callbackfn: (previousValue: string, currentValue: string, currentIndex: number, array: string[]) => string, initialValue: string): string; reduceRight(callbackfn: (previousValue: U, currentValue: string, currentIndex: number, array: string[]) => U, initialValue: U): U; find(predicate: (this: void, value: string, index: number, obj: string[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: string, index: number, obj: string[]) => unknown, thisArg?: any): string | undefined; findIndex(predicate: (value: string, index: number, obj: string[]) => unknown, thisArg?: any): number; fill(value: string, start?: number | undefined, end?: number | undefined): string[]; copyWithin(target: number, start: number, end?: number | undefined): string[]; entries(): IterableIterator<[number, string]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: string, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: string, index: number, array: string[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; at(index: number): string | undefined; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } | { query: ", "FilterMetaParams", - " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): boolean | undefined; push(...items: boolean[]): number; concat(...items: ConcatArray[]): boolean[]; concat(...items: (boolean | ConcatArray)[]): boolean[]; join(separator?: string | undefined): string; reverse(): boolean[]; shift(): boolean | undefined; slice(start?: number | undefined, end?: number | undefined): boolean[]; sort(compareFn?: ((a: boolean, b: boolean) => number) | undefined): boolean[]; splice(start: number, deleteCount?: number | undefined): boolean[]; splice(start: number, deleteCount: number, ...items: boolean[]): boolean[]; unshift(...items: boolean[]): number; indexOf(searchElement: boolean, fromIndex?: number | undefined): number; lastIndexOf(searchElement: boolean, fromIndex?: number | undefined): number; every(predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean; some(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: boolean, index: number, array: boolean[]) => void, thisArg?: any): void; map(callbackfn: (value: boolean, index: number, array: boolean[]) => U, thisArg?: any): U[]; filter(predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean[]; reduce(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean): boolean; reduce(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean, initialValue: boolean): boolean; reduce(callbackfn: (previousValue: U, currentValue: boolean, currentIndex: number, array: boolean[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean): boolean; reduceRight(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean, initialValue: boolean): boolean; reduceRight(callbackfn: (previousValue: U, currentValue: boolean, currentIndex: number, array: boolean[]) => U, initialValue: U): U; find(predicate: (this: void, value: boolean, index: number, obj: boolean[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: boolean, index: number, obj: boolean[]) => unknown, thisArg?: any): boolean | undefined; findIndex(predicate: (value: boolean, index: number, obj: boolean[]) => unknown, thisArg?: any): number; fill(value: boolean, start?: number | undefined, end?: number | undefined): boolean[]; copyWithin(target: number, start: number, end?: number | undefined): boolean[]; entries(): IterableIterator<[number, boolean]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: boolean, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: boolean, index: number, array: boolean[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): boolean | undefined; } | { query: ", + " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): boolean | undefined; push(...items: boolean[]): number; concat(...items: ConcatArray[]): boolean[]; concat(...items: (boolean | ConcatArray)[]): boolean[]; join(separator?: string | undefined): string; reverse(): boolean[]; shift(): boolean | undefined; slice(start?: number | undefined, end?: number | undefined): boolean[]; sort(compareFn?: ((a: boolean, b: boolean) => number) | undefined): boolean[]; splice(start: number, deleteCount?: number | undefined): boolean[]; splice(start: number, deleteCount: number, ...items: boolean[]): boolean[]; unshift(...items: boolean[]): number; indexOf(searchElement: boolean, fromIndex?: number | undefined): number; lastIndexOf(searchElement: boolean, fromIndex?: number | undefined): number; every(predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean; some(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: boolean, index: number, array: boolean[]) => void, thisArg?: any): void; map(callbackfn: (value: boolean, index: number, array: boolean[]) => U, thisArg?: any): U[]; filter(predicate: (value: boolean, index: number, array: boolean[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: boolean, index: number, array: boolean[]) => unknown, thisArg?: any): boolean[]; reduce(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean): boolean; reduce(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean, initialValue: boolean): boolean; reduce(callbackfn: (previousValue: U, currentValue: boolean, currentIndex: number, array: boolean[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean): boolean; reduceRight(callbackfn: (previousValue: boolean, currentValue: boolean, currentIndex: number, array: boolean[]) => boolean, initialValue: boolean): boolean; reduceRight(callbackfn: (previousValue: U, currentValue: boolean, currentIndex: number, array: boolean[]) => U, initialValue: U): U; find(predicate: (this: void, value: boolean, index: number, obj: boolean[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: boolean, index: number, obj: boolean[]) => unknown, thisArg?: any): boolean | undefined; findIndex(predicate: (value: boolean, index: number, obj: boolean[]) => unknown, thisArg?: any): number; fill(value: boolean, start?: number | undefined, end?: number | undefined): boolean[]; copyWithin(target: number, start: number, end?: number | undefined): boolean[]; entries(): IterableIterator<[number, boolean]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: boolean, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: boolean, index: number, array: boolean[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; at(index: number): boolean | undefined; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } | { query: ", "FilterMetaParams", " | undefined; from?: string | number | undefined; to?: string | number | undefined; gt?: string | number | undefined; lt?: string | number | undefined; gte?: string | number | undefined; lte?: string | number | undefined; format?: string | undefined; } | { query: ", "FilterMetaParams", - " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): number | undefined; push(...items: number[]): number; concat(...items: ConcatArray[]): number[]; concat(...items: (number | ConcatArray)[]): number[]; join(separator?: string | undefined): string; reverse(): number[]; shift(): number | undefined; slice(start?: number | undefined, end?: number | undefined): number[]; sort(compareFn?: ((a: number, b: number) => number) | undefined): number[]; splice(start: number, deleteCount?: number | undefined): number[]; splice(start: number, deleteCount: number, ...items: number[]): number[]; unshift(...items: number[]): number; indexOf(searchElement: number, fromIndex?: number | undefined): number; lastIndexOf(searchElement: number, fromIndex?: number | undefined): number; every(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; some(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any): void; map(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any): U[]; filter(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; find(predicate: (this: void, value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; findIndex(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; fill(value: number, start?: number | undefined, end?: number | undefined): number[]; copyWithin(target: number, start: number, end?: number | undefined): number[]; entries(): IterableIterator<[number, number]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: number, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): number | undefined; } | { query: ", + " | undefined; length: number; toString(): string; toLocaleString(): string; pop(): number | undefined; push(...items: number[]): number; concat(...items: ConcatArray[]): number[]; concat(...items: (number | ConcatArray)[]): number[]; join(separator?: string | undefined): string; reverse(): number[]; shift(): number | undefined; slice(start?: number | undefined, end?: number | undefined): number[]; sort(compareFn?: ((a: number, b: number) => number) | undefined): number[]; splice(start: number, deleteCount?: number | undefined): number[]; splice(start: number, deleteCount: number, ...items: number[]): number[]; unshift(...items: number[]): number; indexOf(searchElement: number, fromIndex?: number | undefined): number; lastIndexOf(searchElement: number, fromIndex?: number | undefined): number; every(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; every(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; some(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; forEach(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any): void; map(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any): U[]; filter(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; filter(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduce(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduce(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; reduceRight(callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; reduceRight(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; find(predicate: (this: void, value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; find(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; findIndex(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number; fill(value: number, start?: number | undefined, end?: number | undefined): number[]; copyWithin(target: number, start: number, end?: number | undefined): number[]; entries(): IterableIterator<[number, number]>; keys(): IterableIterator; values(): IterableIterator; includes(searchElement: number, fromIndex?: number | undefined): boolean; flatMap(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; at(index: number): number | undefined; [Symbol.iterator](): IterableIterator; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } | { query: ", "FilterMetaParams", " | undefined; $state?: { store: ", { @@ -5115,7 +5115,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; [Symbol.iterator](): IterableIterator<", + "[]) => U | readonly U[], thisArg?: This | undefined): U[]; flat(this: A, depth?: D | undefined): FlatArray[]; at(index: number): ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5123,7 +5123,7 @@ "section": "def-common.Filter", "text": "Filter" }, - ">; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; at(index: number): ", + " | undefined; [Symbol.iterator](): IterableIterator<", { "pluginId": "@kbn/es-query", "scope": "common", @@ -5131,7 +5131,7 @@ "section": "def-common.Filter", "text": "Filter" }, - " | undefined; } | { query: ", + ">; [Symbol.unscopables](): { copyWithin: boolean; entries: boolean; fill: boolean; find: boolean; findIndex: boolean; keys: boolean; values: boolean; }; } | { query: ", "FilterMetaParams", " | undefined; alias?: string | null | undefined; disabled?: boolean | undefined; negate?: boolean | undefined; controlledBy?: string | undefined; group?: string | undefined; index?: string | undefined; isMultiIndex?: boolean | undefined; type?: string | undefined; key?: string | undefined; params?: (", "FilterMetaParams", diff --git a/api_docs/kbn_es_query.mdx b/api_docs/kbn_es_query.mdx index 74a7c73aec306..47abd55795b15 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-query'] --- import kbnEsQueryObj from './kbn_es_query.devdocs.json'; diff --git a/api_docs/kbn_es_types.devdocs.json b/api_docs/kbn_es_types.devdocs.json index aaf5f53cf1583..0f278af4733b8 100644 --- a/api_docs/kbn_es_types.devdocs.json +++ b/api_docs/kbn_es_types.devdocs.json @@ -150,6 +150,59 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/es-types", + "id": "def-common.ESQLSearchParams", + "type": "Interface", + "tags": [], + "label": "ESQLSearchParams", + "description": [], + "path": "packages/kbn-es-types/src/search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/es-types", + "id": "def-common.ESQLSearchParams.query", + "type": "string", + "tags": [], + "label": "query", + "description": [], + "path": "packages/kbn-es-types/src/search.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/es-types", + "id": "def-common.ESQLSearchParams.filter", + "type": "Unknown", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/kbn-es-types/src/search.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/es-types", + "id": "def-common.ESQLSearchParams.locale", + "type": "string", + "tags": [], + "label": "locale", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-es-types/src/search.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/es-types", "id": "def-common.ESQLSearchReponse", diff --git a/api_docs/kbn_es_types.mdx b/api_docs/kbn_es_types.mdx index 2239b14ba2ac0..598708fd150f9 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/es-types'] --- import kbnEsTypesObj from './kbn_es_types.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 | |-------------------|-----------|------------------------|-----------------| -| 26 | 0 | 26 | 0 | +| 30 | 0 | 30 | 0 | ## Common diff --git a/api_docs/kbn_eslint_plugin_imports.mdx b/api_docs/kbn_eslint_plugin_imports.mdx index a87f273b8bdd2..2f6e82c758ae2 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/eslint-plugin-imports'] --- import kbnEslintPluginImportsObj from './kbn_eslint_plugin_imports.devdocs.json'; diff --git a/api_docs/kbn_event_annotation_common.devdocs.json b/api_docs/kbn_event_annotation_common.devdocs.json index a9fa9aea231b0..6ff4540b70920 100644 --- a/api_docs/kbn_event_annotation_common.devdocs.json +++ b/api_docs/kbn_event_annotation_common.devdocs.json @@ -521,7 +521,7 @@ "label": "AvailableAnnotationIcon", "description": [], "signature": [ - "\"alert\" | \"tag\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"circle\" | \"triangle\"" + "\"alert\" | \"circle\" | \"tag\" | \"asterisk\" | \"bell\" | \"bolt\" | \"bug\" | \"editorComment\" | \"flag\" | \"heart\" | \"mapMarker\" | \"pinFilled\" | \"starEmpty\" | \"starFilled\" | \"triangle\"" ], "path": "packages/kbn-event-annotation-common/types.ts", "deprecated": false, diff --git a/api_docs/kbn_event_annotation_common.mdx b/api_docs/kbn_event_annotation_common.mdx index a78fb63d369e0..cd908f40ca901 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-01-04 +date: 2024-01-25 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 7b0106699b554..c90870155356d 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_expandable_flyout.devdocs.json index 261654cf26f16..a41652f1a4923 100644 --- a/api_docs/kbn_expandable_flyout.devdocs.json +++ b/api_docs/kbn_expandable_flyout.devdocs.json @@ -77,7 +77,7 @@ "tags": [], "label": "ExpandableFlyoutProvider", "description": [ - "\nWrap your plugin with this context for the ExpandableFlyout React component.\nStorage property allows you to specify how the flyout state works internally.\nWith \"url\", it will be persisted into url and thus allow for deep linking & will survive webpage reloads.\n\"memory\" is based on useReducer hook. The state is saved internally to the package. which means it will not be\npersisted when sharing url or reloading browser pages." + "\nWrap your plugin with this context for the ExpandableFlyout React component.\nStorage property allows you to specify how the flyout state works internally.\nWith \"url\", it will be persisted into url and thus allow for deep linking & will survive webpage reloads.\n\"memory\" is based on an isolated redux context. The state is saved internally to the package, which means it will not be\npersisted when sharing url or reloading browser pages." ], "signature": [ "({ children, storage, }: React.PropsWithChildren>) => JSX.Element" @@ -107,16 +107,89 @@ }, { "parentPluginId": "@kbn/expandable-flyout", - "id": "def-common.useExpandableFlyoutContext", + "id": "def-common.useExpandableFlyoutApi", "type": "Function", "tags": [], - "label": "useExpandableFlyoutContext", + "label": "useExpandableFlyoutApi", "description": [ - "\nRetrieve context's properties" + "\nThis hook allows you to interact with the flyout, open panels and previews etc." + ], + "signature": [ + "() => { openFlyout: (panels: { left?: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined; right?: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined; preview?: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined; }) => void; openRightPanel: (panel: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + ") => void; openLeftPanel: (panel: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + ") => void; openPreviewPanel: (panel: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + ") => void; closeRightPanel: () => void; closeLeftPanel: () => void; closePreviewPanel: () => void; previousPreviewPanel: () => void; closeFlyout: () => void; }" + ], + "path": "packages/kbn-expandable-flyout/src/context.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.useExpandableFlyoutState", + "type": "Function", + "tags": [], + "label": "useExpandableFlyoutState", + "description": [ + "\nThis hook allows you to access the flyout state, read open panels and previews." ], "signature": [ "() => ", - "ExpandableFlyoutContextValue" + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.State", + "text": "State" + } ], "path": "packages/kbn-expandable-flyout/src/context.tsx", "deprecated": false, @@ -127,6 +200,395 @@ } ], "interfaces": [ + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi", + "type": "Interface", + "tags": [], + "label": "ExpandableFlyoutApi", + "description": [], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.panels", + "type": "Object", + "tags": [], + "label": "panels", + "description": [ + "\nRight, left and preview panels" + ], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.State", + "text": "State" + } + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openFlyout", + "type": "Function", + "tags": [], + "label": "openFlyout", + "description": [ + "\nOpen the flyout with left, right and/or preview panels" + ], + "signature": [ + "(panels: { left?: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined; right?: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined; preview?: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined; }) => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openFlyout.$1", + "type": "Object", + "tags": [], + "label": "panels", + "description": [], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openFlyout.$1.left", + "type": "Object", + "tags": [], + "label": "left", + "description": [], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openFlyout.$1.right", + "type": "Object", + "tags": [], + "label": "right", + "description": [], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openFlyout.$1.preview", + "type": "Object", + "tags": [], + "label": "preview", + "description": [], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openRightPanel", + "type": "Function", + "tags": [], + "label": "openRightPanel", + "description": [ + "\nReplaces the current right panel with a new one" + ], + "signature": [ + "(panel: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + ") => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openRightPanel.$1", + "type": "Object", + "tags": [], + "label": "panel", + "description": [], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + } + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openLeftPanel", + "type": "Function", + "tags": [], + "label": "openLeftPanel", + "description": [ + "\nReplaces the current left panel with a new one" + ], + "signature": [ + "(panel: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + ") => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openLeftPanel.$1", + "type": "Object", + "tags": [], + "label": "panel", + "description": [], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + } + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openPreviewPanel", + "type": "Function", + "tags": [], + "label": "openPreviewPanel", + "description": [ + "\nAdd a new preview panel to the list of current preview panels" + ], + "signature": [ + "(panel: ", + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + ") => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.openPreviewPanel.$1", + "type": "Object", + "tags": [], + "label": "panel", + "description": [], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + } + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.closeRightPanel", + "type": "Function", + "tags": [], + "label": "closeRightPanel", + "description": [ + "\nCloses right panel" + ], + "signature": [ + "() => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.closeLeftPanel", + "type": "Function", + "tags": [], + "label": "closeLeftPanel", + "description": [ + "\nCloses left panel" + ], + "signature": [ + "() => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.closePreviewPanel", + "type": "Function", + "tags": [], + "label": "closePreviewPanel", + "description": [ + "\nCloses all preview panels" + ], + "signature": [ + "() => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.previousPreviewPanel", + "type": "Function", + "tags": [], + "label": "previousPreviewPanel", + "description": [ + "\nGo back to previous preview panel" + ], + "signature": [ + "() => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.ExpandableFlyoutApi.closeFlyout", + "type": "Function", + "tags": [], + "label": "closeFlyout", + "description": [ + "\nClose all panels and closes flyout" + ], + "signature": [ + "() => void" + ], + "path": "packages/kbn-expandable-flyout/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/expandable-flyout", "id": "def-common.ExpandableFlyoutProps", @@ -294,6 +756,89 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.State", + "type": "Interface", + "tags": [], + "label": "State", + "description": [], + "path": "packages/kbn-expandable-flyout/src/state.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.State.left", + "type": "Object", + "tags": [], + "label": "left", + "description": [ + "\nPanel to render in the left section" + ], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined" + ], + "path": "packages/kbn-expandable-flyout/src/state.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.State.right", + "type": "Object", + "tags": [], + "label": "right", + "description": [ + "\nPanel to render in the right section" + ], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + " | undefined" + ], + "path": "packages/kbn-expandable-flyout/src/state.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/expandable-flyout", + "id": "def-common.State.preview", + "type": "Array", + "tags": [], + "label": "preview", + "description": [ + "\nPanels to render in the preview section" + ], + "signature": [ + { + "pluginId": "@kbn/expandable-flyout", + "scope": "common", + "docId": "kibKbnExpandableFlyoutPluginApi", + "section": "def-common.FlyoutPanelProps", + "text": "FlyoutPanelProps" + }, + "[]" + ], + "path": "packages/kbn-expandable-flyout/src/state.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -323,9 +868,7 @@ "label": "ExpandableFlyoutContext", "description": [], "signature": [ - "React.Context<", - "ExpandableFlyoutContextValue", - " | undefined>" + "React.Context" ], "path": "packages/kbn-expandable-flyout/src/context.tsx", "deprecated": false, diff --git a/api_docs/kbn_expandable_flyout.mdx b/api_docs/kbn_expandable_flyout.mdx index ae08844018103..040f0f4b62358 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/expandable-flyout'] --- import kbnExpandableFlyoutObj from './kbn_expandable_flyout.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-threat-hunting-investigations](https://github.com/org | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 17 | 0 | 7 | 2 | +| 40 | 0 | 16 | 1 | ## Common diff --git a/api_docs/kbn_field_types.mdx b/api_docs/kbn_field_types.mdx index cb55a29f3f27a..ccd9ffc98dd8e 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-01-04 +date: 2024-01-25 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 06b57eb8264ed..0cd49943b9005 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-01-04 +date: 2024-01-25 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 0c91dccea3f64..10b9db74ce601 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-01-04 +date: 2024-01-25 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_ftr_common_functional_services.devdocs.json b/api_docs/kbn_ftr_common_functional_services.devdocs.json index 78af08e1b4246..e094dc8021ab2 100644 --- a/api_docs/kbn_ftr_common_functional_services.devdocs.json +++ b/api_docs/kbn_ftr_common_functional_services.devdocs.json @@ -48,7 +48,7 @@ "label": "tryForTime", "description": [], "signature": [ - "(timeout: number, block: () => Promise, onFailureBlock?: (() => Promise) | undefined) => Promise" + "(timeout: number, block: () => Promise, onFailureBlock?: (() => Promise) | undefined, retryDelay?: number | undefined) => Promise" ], "path": "packages/kbn-ftr-common-functional-services/services/retry/retry.ts", "deprecated": false, @@ -98,6 +98,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-services", + "id": "def-common.RetryService.tryForTime.$4", + "type": "number", + "tags": [], + "label": "retryDelay", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-services/services/retry/retry.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [] @@ -110,7 +125,7 @@ "label": "try", "description": [], "signature": [ - "(block: () => Promise, onFailureBlock?: (() => Promise) | undefined) => Promise" + "(block: () => Promise, onFailureBlock?: (() => Promise) | undefined, retryDelay?: number | undefined) => Promise" ], "path": "packages/kbn-ftr-common-functional-services/services/retry/retry.ts", "deprecated": false, @@ -145,6 +160,21 @@ "deprecated": false, "trackAdoption": false, "isRequired": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-services", + "id": "def-common.RetryService.try.$3", + "type": "number", + "tags": [], + "label": "retryDelay", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-services/services/retry/retry.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [] diff --git a/api_docs/kbn_ftr_common_functional_services.mdx b/api_docs/kbn_ftr_common_functional_services.mdx index 1f31375de175b..2a5982133d233 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 29 | 0 | 29 | 1 | +| 31 | 0 | 31 | 1 | ## Common diff --git a/api_docs/kbn_ftr_common_functional_ui_services.devdocs.json b/api_docs/kbn_ftr_common_functional_ui_services.devdocs.json index 79a57d84974d8..d647d7dc8d83a 100644 --- a/api_docs/kbn_ftr_common_functional_ui_services.devdocs.json +++ b/api_docs/kbn_ftr_common_functional_ui_services.devdocs.json @@ -17,71 +17,12951 @@ "objects": [] }, "common": { - "classes": [], - "functions": [], - "interfaces": [], - "enums": [], - "misc": [ + "classes": [ { "parentPluginId": "@kbn/ftr-common-functional-ui-services", - "id": "def-common.FtrProviderContext", - "type": "Type", + "id": "def-common.TestSubjects", + "type": "Class", "tags": [], - "label": "FtrProviderContext", + "label": "TestSubjects", "description": [], "signature": [ { - "pluginId": "@kbn/test", + "pluginId": "@kbn/ftr-common-functional-ui-services", "scope": "common", - "docId": "kibKbnTestPluginApi", - "section": "def-common.GenericFtrProviderContext", - "text": "GenericFtrProviderContext" + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + " extends ", + "FtrService" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.log", + "type": "Object", + "tags": [], + "label": "log", + "description": [], + "signature": [ + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.retry", + "type": "Object", + "tags": [], + "label": "retry", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findService", + "type": "CompoundType", + "tags": [], + "label": "findService", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.AsyncInstance", + "text": "AsyncInstance" + }, + "<", + "FindService", + "> & ", + "FindService" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.config", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.Config", + "text": "Config" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.FIND_TIME", + "type": "Any", + "tags": [], + "label": "FIND_TIME", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.TRY_TIME", + "type": "Any", + "tags": [], + "label": "TRY_TIME", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.WAIT_FOR_EXISTS_TIME", + "type": "Any", + "tags": [], + "label": "WAIT_FOR_EXISTS_TIME", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.exists", + "type": "Function", + "tags": [], + "label": "exists", + "description": [ + "\nGet a promise that resolves with `true` when an element exists, if the element doesn't exist\nyet it will wait until the element does exist. If we wait until the timeout and the element\nstill doesn't exist the promise will resolve with `false`.\n\nThis method is intended to quickly answer the question \"does this testSubject exist\". Its\n2.5 second timeout responds quickly, making it a good candidate for putting inside\n`retry.waitFor()` loops.\n\nWhen `options.timeout` is not passed the `timeouts.waitForExists` config is used as\nthe timeout. The default value for that config is currently 2.5 seconds (in ms).\n\nIf the element is hidden it is not treated as \"existing\", unless `options.allowHidden`\nis set to `true`." + ], + "signature": [ + "(selector: string, options?: ExistsOptions) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.exists.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.exists.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "ExistsOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.existOrFail", + "type": "Function", + "tags": [], + "label": "existOrFail", + "description": [ + "\nGet a promise that resolves when an element exists, if the element doesn't exist\nbefore the timeout is reached the promise will reject with an error.\n\nThis method is intended to be used as success critieria when something is expected\nto exist. The default 2 minute timeout is not appropriate for all conditions, but\nhard-coding timeouts all over tests is also bad, so please use your best judgement.\n\nThe options are equal to the options accepted by the {@link #exists} method except\nthat `options.timeout` defaults to the `timeouts.try` config, or 2 minutes." + ], + "signature": [ + "(selector: string, existsOptions?: ExistsOptions | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.existOrFail.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.existOrFail.$2", + "type": "Object", + "tags": [], + "label": "existsOptions", + "description": [], + "signature": [ + "ExistsOptions | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.missingOrFail", + "type": "Function", + "tags": [], + "label": "missingOrFail", + "description": [ + "\nGet a promise that resolves when an element no longer exists, if the element does exist\nit will wait until the element does not exist. If we wait until the timeout and the element\nstill exists the promise will reject.\n\nThis method is intended to quickly assert that an element does not exist. Its\n2.5 second timeout responds quickly.\n\nWhen `options.timeout` is not passed the `timeouts.waitForExists` config is used as\nthe timeout. The default value for that config is currently 2.5 seconds.\n\nIf the element is hidden but still in the DOM it is treated as \"existing\", unless `options.allowHidden`\nis set to `true`." + ], + "signature": [ + "(selector: string, options?: ExistsOptions) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.missingOrFail.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.missingOrFail.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "ExistsOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.stringExistsInCodeBlockOrFail", + "type": "Function", + "tags": [], + "label": "stringExistsInCodeBlockOrFail", + "description": [], + "signature": [ + "(codeBlockSelector: string, stringToFind: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.stringExistsInCodeBlockOrFail.$1", + "type": "string", + "tags": [], + "label": "codeBlockSelector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.stringExistsInCodeBlockOrFail.$2", + "type": "string", + "tags": [], + "label": "stringToFind", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.append", + "type": "Function", + "tags": [], + "label": "append", + "description": [], + "signature": [ + "(selector: string, text: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.append.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.append.$2", + "type": "string", + "tags": [], + "label": "text", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabled", + "type": "Function", + "tags": [], + "label": "clickWhenNotDisabled", + "description": [ + "\nClicks on the element identified by the testSubject selector. If the retries\nautomatically on \"stale element\" errors unlike clickWhenNotDisabledWithoutRetry.\n`opts.timeout` defaults to the 'timeouts.find' config, which defaults to 10 seconds" + ], + "signature": [ + "(selector: string, opts?: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TimeoutOpt", + "text": "TimeoutOpt" + }, + " | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabled.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabled.$2", + "type": "Object", + "tags": [], + "label": "opts", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TimeoutOpt", + "text": "TimeoutOpt" + }, + " | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabledWithoutRetry", + "type": "Function", + "tags": [], + "label": "clickWhenNotDisabledWithoutRetry", + "description": [ + "\nClicks on the element identified by the testSubject selector. Somewhat surprisingly,\nthis method allows `stale element` errors to propogate, which is why it was renamed\nfrom `clickWhenNotDisabled()` and that method was re-implemented to be more consistent\nwith the rest of the functions in this service.\n\n`opts.timeout` defaults to the 'timeouts.find' config, which defaults to 10 seconds" + ], + "signature": [ + "(selector: string, opts?: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TimeoutOpt", + "text": "TimeoutOpt" + }, + " | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabledWithoutRetry.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.clickWhenNotDisabledWithoutRetry.$2", + "type": "Object", + "tags": [], + "label": "opts", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TimeoutOpt", + "text": "TimeoutOpt" + }, + " | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.click", + "type": "Function", + "tags": [], + "label": "click", + "description": [], + "signature": [ + "(selector: string, timeout?: number, topOffset?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.click.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.click.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.click.$3", + "type": "number", + "tags": [], + "label": "topOffset", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.pressEnter", + "type": "Function", + "tags": [], + "label": "pressEnter", + "description": [], + "signature": [ + "(selector: string, timeout?: number) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.pressEnter.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.pressEnter.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.doubleClick", + "type": "Function", + "tags": [], + "label": "doubleClick", + "description": [], + "signature": [ + "(selector: string, timeout?: number) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.doubleClick.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.doubleClick.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.descendantExists", + "type": "Function", + "tags": [], + "label": "descendantExists", + "description": [], + "signature": [ + "(selector: string, parentElement: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.descendantExists.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.descendantExists.$2", + "type": "Object", + "tags": [], + "label": "parentElement", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findDescendant", + "type": "Function", + "tags": [], + "label": "findDescendant", + "description": [], + "signature": [ + "(selector: string, parentElement: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findDescendant.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findDescendant.$2", + "type": "Object", + "tags": [], + "label": "parentElement", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAllDescendant", + "type": "Function", + "tags": [], + "label": "findAllDescendant", + "description": [], + "signature": [ + "(selector: string, parentElement: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAllDescendant.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAllDescendant.$2", + "type": "Object", + "tags": [], + "label": "parentElement", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.find", + "type": "Function", + "tags": [], + "label": "find", + "description": [], + "signature": [ + "(selector: string, timeout?: number) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.find.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.find.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAll", + "type": "Function", + "tags": [], + "label": "findAll", + "description": [], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAll.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.findAll.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttributeAll", + "type": "Function", + "tags": [], + "label": "getAttributeAll", + "description": [], + "signature": [ + "(selector: string, attribute: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttributeAll.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttributeAll.$2", + "type": "string", + "tags": [], + "label": "attribute", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttribute", + "type": "Function", + "tags": [], + "label": "getAttribute", + "description": [], + "signature": [ + "(selector: string, attribute: string, options?: number | { findTimeout?: number | undefined; tryTimeout?: number | undefined; } | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttribute.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttribute.$2", + "type": "string", + "tags": [], + "label": "attribute", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getAttribute.$3", + "type": "CompoundType", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "number | { findTimeout?: number | undefined; tryTimeout?: number | undefined; } | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue", + "type": "Function", + "tags": [], + "label": "setValue", + "description": [], + "signature": [ + "(selector: string, text: string, options?: SetValueOptions, topOffset?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue.$2", + "type": "string", + "tags": [], + "label": "text", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue.$3", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "SetValueOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setValue.$4", + "type": "number", + "tags": [], + "label": "topOffset", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.selectValue", + "type": "Function", + "tags": [], + "label": "selectValue", + "description": [], + "signature": [ + "(selector: string, value: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.selectValue.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.selectValue.$2", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isEnabled", + "type": "Function", + "tags": [], + "label": "isEnabled", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isEnabled.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isDisplayed", + "type": "Function", + "tags": [], + "label": "isDisplayed", + "description": [], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isDisplayed.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isDisplayed.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isSelected", + "type": "Function", + "tags": [], + "label": "isSelected", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isSelected.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isSelectedAll", + "type": "Function", + "tags": [], + "label": "isSelectedAll", + "description": [], + "signature": [ + "(selectorAll: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isSelectedAll.$1", + "type": "string", + "tags": [], + "label": "selectorAll", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getVisibleText", + "type": "Function", + "tags": [], + "label": "getVisibleText", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getVisibleText.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getVisibleTextAll", + "type": "Function", + "tags": [], + "label": "getVisibleTextAll", + "description": [], + "signature": [ + "(selectorAll: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getVisibleTextAll.$1", + "type": "string", + "tags": [], + "label": "selectorAll", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.moveMouseTo", + "type": "Function", + "tags": [], + "label": "moveMouseTo", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.moveMouseTo.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForDeleted", + "type": "Function", + "tags": [], + "label": "waitForDeleted", + "description": [], + "signature": [ + "(selectorOrElement: string | ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForDeleted.$1", + "type": "CompoundType", + "tags": [], + "label": "selectorOrElement", + "description": [], + "signature": [ + "string | ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForAttributeToChange", + "type": "Function", + "tags": [], + "label": "waitForAttributeToChange", + "description": [], + "signature": [ + "(selector: string, attribute: string, value: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForAttributeToChange.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForAttributeToChange.$2", + "type": "string", + "tags": [], + "label": "attribute", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForAttributeToChange.$3", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForHidden", + "type": "Function", + "tags": [], + "label": "waitForHidden", + "description": [], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForHidden.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForHidden.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForEnabled", + "type": "Function", + "tags": [], + "label": "waitForEnabled", + "description": [], + "signature": [ + "(selector: string, timeout?: number) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForEnabled.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.waitForEnabled.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getCssSelector", + "type": "Function", + "tags": [], + "label": "getCssSelector", + "description": [], + "signature": [ + "(selector: string) => string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.getCssSelector.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.scrollIntoView", + "type": "Function", + "tags": [], + "label": "scrollIntoView", + "description": [], + "signature": [ + "(selector: string, offset?: number | { topOffset?: number | undefined; bottomOffset?: number | undefined; } | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.scrollIntoView.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.scrollIntoView.$2", + "type": "CompoundType", + "tags": [], + "label": "offset", + "description": [], + "signature": [ + "number | { topOffset?: number | undefined; bottomOffset?: number | undefined; } | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isChecked", + "type": "Function", + "tags": [], + "label": "isChecked", + "description": [], + "signature": [ + "(selector: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isChecked.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setCheckbox", + "type": "Function", + "tags": [], + "label": "setCheckbox", + "description": [], + "signature": [ + "(selector: string, state: \"check\" | \"uncheck\") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setCheckbox.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setCheckbox.$2", + "type": "CompoundType", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "\"check\" | \"uncheck\"" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isEuiSwitchChecked", + "type": "Function", + "tags": [], + "label": "isEuiSwitchChecked", + "description": [], + "signature": [ + "(selector: string | ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.isEuiSwitchChecked.$1", + "type": "CompoundType", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setEuiSwitch", + "type": "Function", + "tags": [], + "label": "setEuiSwitch", + "description": [], + "signature": [ + "(selector: string, state: \"check\" | \"uncheck\") => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setEuiSwitch.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TestSubjects.setEuiSwitch.$2", + "type": "CompoundType", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "\"check\" | \"uncheck\"" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper", + "type": "Class", + "tags": [], + "label": "WebElementWrapper", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.isChromium", + "type": "boolean", + "tags": [], + "label": "isChromium", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.create", + "type": "Function", + "tags": [], + "label": "create", + "description": [], + "signature": [ + "(webElement: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + " | ", + "WebElement", + ", locator: ", + "By", + " | null, driver: ", + "WebDriver", + ", timeout: number, fixedHeaderHeight: number, logger: ", + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + }, + ", browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + ") => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.create.$1", + "type": "CompoundType", + "tags": [], + "label": "webElement", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + " | ", + "WebElement" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.create.$2", + "type": "CompoundType", + "tags": [], + "label": "locator", + "description": [], + "signature": [ + "By", + " | null" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.create.$3", + "type": "Object", + "tags": [], + "label": "driver", + "description": [], + "signature": [ + "WebDriver" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.create.$4", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.create.$5", + "type": "number", + "tags": [], + "label": "fixedHeaderHeight", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.create.$6", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.create.$7", + "type": "Enum", + "tags": [], + "label": "browserType", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "_webElement", + "description": [], + "signature": [ + "WebElement" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.Unnamed.$2", + "type": "CompoundType", + "tags": [], + "label": "locator", + "description": [], + "signature": [ + "By", + " | null" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.Unnamed.$3", + "type": "Object", + "tags": [], + "label": "driver", + "description": [], + "signature": [ + "WebDriver" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.Unnamed.$4", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.Unnamed.$5", + "type": "number", + "tags": [], + "label": "fixedHeaderHeight", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.Unnamed.$6", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/tooling-log", + "scope": "common", + "docId": "kibKbnToolingLogPluginApi", + "section": "def-common.ToolingLog", + "text": "ToolingLog" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.Unnamed.$7", + "type": "Enum", + "tags": [], + "label": "browserType", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.isDisplayed", + "type": "Function", + "tags": [ + "return" + ], + "label": "isDisplayed", + "description": [ + "\nReturns whether or not the element would be visible to an actual user. This means\nthat the following types of elements are considered to be not displayed:\n\n - Elements with display: none\n - Elements with visibility: hidden\n - Elements positioned outside of the viewport that cannot be scrolled into view\n - Elements with opacity: 0\n - Elements with no offsetWidth or offsetHeight\n\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#isDisplayed\n" + ], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.isEnabled", + "type": "Function", + "tags": [ + "return" + ], + "label": "isEnabled", + "description": [ + "\nTests whether this element is enabled, as dictated by the disabled attribute.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#isEnabled\n" + ], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.isSelected", + "type": "Function", + "tags": [ + "return" + ], + "label": "isSelected", + "description": [ + "\nTests whether this element is selected.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#isSelected\n" + ], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.click", + "type": "Function", + "tags": [ + "return" + ], + "label": "click", + "description": [ + "\nClicks on this element.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#click\n" + ], + "signature": [ + "(topOffset?: number | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.click.$1", + "type": "number", + "tags": [], + "label": "topOffset", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.focus", + "type": "Function", + "tags": [ + "return" + ], + "label": "focus", + "description": [ + "\nFocuses this element.\n" + ], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.openHref", + "type": "Function", + "tags": [ + "return" + ], + "label": "openHref", + "description": [ + "\nIf possible, opens 'href' of this element directly through the URL\n" + ], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.elementHasClass", + "type": "Function", + "tags": [ + "return" + ], + "label": "elementHasClass", + "description": [ + "\nCheck if webelement wrapper has a specific class.\n" + ], + "signature": [ + "(className: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.elementHasClass.$1", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.clearValue", + "type": "Function", + "tags": [ + "default" + ], + "label": "clearValue", + "description": [ + "\nClear the value of this element. This command has no effect if the underlying DOM element\nis neither a text INPUT element nor a TEXTAREA element.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#clear\n" + ], + "signature": [ + "(options?: ClearOptions) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.clearValue.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [ + "option to clear input with JS: `arguments[0].value=''`" + ], + "signature": [ + "ClearOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.clearValueWithKeyboard", + "type": "Function", + "tags": [ + "default" + ], + "label": "clearValueWithKeyboard", + "description": [ + "\nClear the value of this element using Keyboard" + ], + "signature": [ + "(options?: TypeOptions) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.clearValueWithKeyboard.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [ + "to input characters one by one" + ], + "signature": [ + "TypeOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.selectValueWithKeyboard", + "type": "Function", + "tags": [], + "label": "selectValueWithKeyboard", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.type", + "type": "Function", + "tags": [ + "return" + ], + "label": "type", + "description": [ + "\nTypes a key sequence on the DOM element represented by this instance. Modifier keys\n(SHIFT, CONTROL, ALT, META) are stateful; once a modifier is processed in the key sequence,\nthat key state is toggled until one of the following occurs:\n\nThe modifier key is encountered again in the sequence. At this point the state of the key is\ntoggled (along with the appropriate keyup/down events).\nThe input.Key.NULL key is encountered in the sequence. When this key is encountered, all\nmodifier keys current in the down state are released (with accompanying keyup events). The NULL\nkey can be used to simulate common keyboard shortcuts.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#sendKeys\n" + ], + "signature": [ + "(value: string | string[], options?: TypeOptions) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.type.$1", + "type": "CompoundType", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string | string[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.type.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "TypeOptions" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.pressKeys", + "type": "Function", + "tags": [], + "label": "pressKeys", + "description": [], + "signature": [ + "{ (keys: T | T[]): Promise; (keys: T | T[]): Promise; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.pressKeys.$1", + "type": "string", + "tags": [], + "label": "keys", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.getAttribute", + "type": "Function", + "tags": [], + "label": "getAttribute", + "description": [ + "\nRetrieves the current value of the given attribute of this element. Will return the current\nvalue, even if it has been modified after the page has been loaded. More exactly, this method\nwill return the value of the given attribute, unless that attribute is not present, in which\ncase the value of the property with the same name is returned. If neither value is set, null\nis returned (for example, the \"value\" property of a textarea element). The \"style\" attribute\nis converted as best can be to a text representation with a trailing semi-colon.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#getAttribute\n" + ], + "signature": [ + "(name: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.getAttribute.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.getComputedStyle", + "type": "Function", + "tags": [ + "return" + ], + "label": "getComputedStyle", + "description": [ + "\nRetrieves the value of a computed style property for this instance. If the element inherits\nthe named style from its parent, the parent will be queried for its value. Where possible,\ncolor values will be converted to their hex representation (e.g. #00ff00 instead of rgb(0, 255, 0)).\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#getCssValue\n" + ], + "signature": [ + "(propertyName: string) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.getComputedStyle.$1", + "type": "string", + "tags": [], + "label": "propertyName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.getVisibleText", + "type": "Function", + "tags": [ + "return" + ], + "label": "getVisibleText", + "description": [ + "\nGet the visible (i.e. not hidden by CSS) innerText of this element, including sub-elements,\nwithout any leading or trailing whitespace.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#getText\n" + ], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.getTagName", + "type": "Function", + "tags": [], + "label": "getTagName", + "description": [], + "signature": [ + "{ (): Promise; (): Promise; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.getPosition", + "type": "Function", + "tags": [ + "return" + ], + "label": "getPosition", + "description": [ + "\nReturns an object describing an element's location, in pixels relative to the document element,\nand the element's size in pixels.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#getRect\n" + ], + "signature": [ + "() => Promise<{ height: number; width: number; x: number; y: number; }>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.getSize", + "type": "Function", + "tags": [ + "return" + ], + "label": "getSize", + "description": [ + "\nReturns an object describing an element's location, in pixels relative to the document element,\nand the element's size in pixels.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#getRect\n" + ], + "signature": [ + "() => Promise<{ height: number; width: number; x: number; y: number; }>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.moveMouseTo", + "type": "Function", + "tags": [ + "return" + ], + "label": "moveMouseTo", + "description": [ + "\nMoves the remote environment’s mouse cursor to the current element with optional offset\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/input_exports_Actions.html#move" + ], + "signature": [ + "(options?: { xOffset: number; yOffset: number; }) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.moveMouseTo.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ xOffset: number; yOffset: number; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.clickMouseButton", + "type": "Function", + "tags": [ + "return" + ], + "label": "clickMouseButton", + "description": [ + "\nInserts an action for moving the mouse to element center, unless optional offset is provided.\nThen adds an action for left-click (down/up) with the mouse.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/input_exports_Actions.html#click\n" + ], + "signature": [ + "(options?: { xOffset: number; yOffset: number; }) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.clickMouseButton.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "{ xOffset: number; yOffset: number; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.doubleClick", + "type": "Function", + "tags": [ + "return" + ], + "label": "doubleClick", + "description": [ + "\nInserts action for performing a double left-click with the mouse.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/input_exports_Actions.html#doubleClick" + ], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByCssSelector", + "type": "Function", + "tags": [ + "return" + ], + "label": "findByCssSelector", + "description": [ + "\nGets the first element inside this element matching the given CSS selector.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#findElement\n" + ], + "signature": [ + "(selector: string) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByCssSelector.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByCssSelector", + "type": "Function", + "tags": [ + "return" + ], + "label": "findAllByCssSelector", + "description": [ + "\nGets all elements inside this element matching the given CSS selector.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#findElement\n" + ], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByCssSelector.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByCssSelector.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByTestSubject", + "type": "Function", + "tags": [ + "return" + ], + "label": "findByTestSubject", + "description": [ + "\nGets the first element inside this element matching the given data-test-subj selector.\n" + ], + "signature": [ + "(selector: string) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByTestSubject.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByTestSubject", + "type": "Function", + "tags": [ + "return" + ], + "label": "findAllByTestSubject", + "description": [ + "\nGets all elements inside this element matching the given data-test-subj selector.\n" + ], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByTestSubject.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByTestSubject.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByClassName", + "type": "Function", + "tags": [ + "return" + ], + "label": "findByClassName", + "description": [ + "\nGets the first element inside this element matching the given CSS class name.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#findElement\n" + ], + "signature": [ + "(className: string) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByClassName.$1", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByClassName", + "type": "Function", + "tags": [ + "return" + ], + "label": "findAllByClassName", + "description": [ + "\nGets all elements inside this element matching the given CSS class name.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#findElement\n" + ], + "signature": [ + "(className: string, timeout?: number | undefined) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByClassName.$1", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByClassName.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByTagName", + "type": "Function", + "tags": [], + "label": "findByTagName", + "description": [], + "signature": [ + "{ (tagName: T): Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">; (tagName: T): Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByTagName.$1", + "type": "string", + "tags": [], + "label": "tagName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByTagName", + "type": "Function", + "tags": [], + "label": "findAllByTagName", + "description": [], + "signature": [ + "{ (tagName: T, timeout?: number | undefined): Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>; (tagName: T, timeout?: number | undefined): Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByTagName.$1", + "type": "string", + "tags": [], + "label": "tagName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByTagName.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByXpath", + "type": "Function", + "tags": [ + "return" + ], + "label": "findByXpath", + "description": [ + "\nGets the first element inside this element matching the given XPath selector.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#findElement\n" + ], + "signature": [ + "(selector: string) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByXpath.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByXpath", + "type": "Function", + "tags": [ + "return" + ], + "label": "findAllByXpath", + "description": [ + "\nGets all elements inside this element matching the given XPath selector.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#findElement\n" + ], + "signature": [ + "(selector: string, timeout?: number | undefined) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByXpath.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByXpath.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByPartialLinkText", + "type": "Function", + "tags": [ + "return" + ], + "label": "findByPartialLinkText", + "description": [ + "\nGets the first element inside this element matching the given partial link text.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#findElement\n" + ], + "signature": [ + "(linkText: string) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findByPartialLinkText.$1", + "type": "string", + "tags": [], + "label": "linkText", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByPartialLinkText", + "type": "Function", + "tags": [ + "return" + ], + "label": "findAllByPartialLinkText", + "description": [ + "\nGets all elements inside this element matching the given partial link text.\nhttps://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/webdriver_exports_WebElement.html#findElement\n" + ], + "signature": [ + "(linkText: string, timeout?: number | undefined) => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.WebElementWrapper", + "text": "WebElementWrapper" + }, + "[]>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByPartialLinkText.$1", + "type": "string", + "tags": [], + "label": "linkText", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.findAllByPartialLinkText.$2", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.waitForDeletedByCssSelector", + "type": "Function", + "tags": [ + "return" + ], + "label": "waitForDeletedByCssSelector", + "description": [ + "\nWaits for all elements inside this element matching the given CSS selector to be destroyed.\n" + ], + "signature": [ + "(selector: string, implicitTimeout?: number) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.waitForDeletedByCssSelector.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.waitForDeletedByCssSelector.$2", + "type": "number", + "tags": [], + "label": "implicitTimeout", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.scrollIntoView", + "type": "Function", + "tags": [ + "return" + ], + "label": "scrollIntoView", + "description": [ + "\nScroll the element into view\n" + ], + "signature": [ + "(scrollIntoViewOptions?: ScrollIntoViewOptions | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.scrollIntoView.$1", + "type": "Object", + "tags": [], + "label": "scrollIntoViewOptions", + "description": [], + "signature": [ + "ScrollIntoViewOptions | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.scrollIntoViewIfNecessary", + "type": "Function", + "tags": [ + "nonstandard", + "return" + ], + "label": "scrollIntoViewIfNecessary", + "description": [ + "\nScroll the element into view if it is not already, avoiding the fixed header if necessary\nThis method is a variation of the scrollIntoView method, where we only scroll into an element\nif it is not part of the \"scrollable view\".\nThis implies a specific behavior, since the \"scrollable view\" of the view is identified by\nthe `document.scrollingElement`, which always results to the html or body tag.\n\nUse cases:\n- An element (a section, a footer) is not visible in the whole page and we need to scroll into it.\n- An element is covered by the fixed header and we need to scroll into it ensuring is not covered.\n\nIn case you have a scrollable list smaller that the size of the HTML document and you need\nto scroll into an element of that list, prefer using the `.scrollIntoView` method.\n" + ], + "signature": [ + "(topOffsetOrOptions?: number | { topOffset?: number | undefined; bottomOffset?: number | undefined; } | undefined) => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.scrollIntoViewIfNecessary.$1", + "type": "CompoundType", + "tags": [], + "label": "topOffsetOrOptions", + "description": [], + "signature": [ + "number | { topOffset?: number | undefined; bottomOffset?: number | undefined; } | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.parseDomContent", + "type": "Function", + "tags": [ + "nonstandard", + "return" + ], + "label": "parseDomContent", + "description": [ + "\nGets element innerHTML and wrap it up with cheerio\n" + ], + "signature": [ + "() => Promise<", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerioStatic", + "text": "CustomCheerioStatic" + }, + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.WebElementWrapper.takeScreenshot", + "type": "Function", + "tags": [], + "label": "takeScreenshot", + "description": [ + "\nCreates the screenshot of the element\n" + ], + "signature": [ + "() => Promise" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [], + "interfaces": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio", + "type": "Interface", + "tags": [], + "label": "CustomCheerio", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[index: number]: Element", + "description": [], + "signature": [ + "[index: number]: cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.length", + "type": "number", + "tags": [], + "label": "length", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.attr", + "type": "Function", + "tags": [], + "label": "attr", + "description": [], + "signature": [ + "{ (): { [attr: string]: string; }; (name: string): string; (name: string, value: any): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.attr", + "type": "Function", + "tags": [], + "label": "attr", + "description": [], + "signature": [ + "{ (): { [attr: string]: string; }; (name: string): string; (name: string, value: any): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.attr.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.attr", + "type": "Function", + "tags": [], + "label": "attr", + "description": [], + "signature": [ + "{ (): { [attr: string]: string; }; (name: string): string; (name: string, value: any): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.attr.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.attr.$2", + "type": "Any", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.data", + "type": "Function", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "{ (): any; (name: string): any; (name: string, value: any): any; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.data", + "type": "Function", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "{ (): any; (name: string): any; (name: string, value: any): any; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.data.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.data", + "type": "Function", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "{ (): any; (name: string): any; (name: string, value: any): any; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.data.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.data.$2", + "type": "Any", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.val", + "type": "Function", + "tags": [], + "label": "val", + "description": [], + "signature": [ + "{ (): string; (value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.val", + "type": "Function", + "tags": [], + "label": "val", + "description": [], + "signature": [ + "{ (): string; (value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.val.$1", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.removeAttr", + "type": "Function", + "tags": [], + "label": "removeAttr", + "description": [], + "signature": [ + "(name: string) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.removeAttr.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.has", + "type": "Function", + "tags": [], + "label": "has", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.has.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.has", + "type": "Function", + "tags": [], + "label": "has", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.has.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.hasClass", + "type": "Function", + "tags": [], + "label": "hasClass", + "description": [], + "signature": [ + "(className: string) => boolean" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.hasClass.$1", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.addClass", + "type": "Function", + "tags": [], + "label": "addClass", + "description": [], + "signature": [ + "(classNames: string) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.addClass.$1", + "type": "string", + "tags": [], + "label": "classNames", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.removeClass", + "type": "Function", + "tags": [], + "label": "removeClass", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (className: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, className: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.removeClass", + "type": "Function", + "tags": [], + "label": "removeClass", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (className: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, className: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.removeClass.$1", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.removeClass", + "type": "Function", + "tags": [], + "label": "removeClass", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (className: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, className: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.removeClass.$1", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, className: string) => string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass", + "type": "Function", + "tags": [], + "label": "toggleClass", + "description": [], + "signature": [ + "{ (className: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (className: string, toggleSwitch: boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (toggleSwitch?: boolean | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, className: string, toggleSwitch: boolean) => string, toggleSwitch?: boolean | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass.$1", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass", + "type": "Function", + "tags": [], + "label": "toggleClass", + "description": [], + "signature": [ + "{ (className: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (className: string, toggleSwitch: boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (toggleSwitch?: boolean | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, className: string, toggleSwitch: boolean) => string, toggleSwitch?: boolean | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass.$1", + "type": "string", + "tags": [], + "label": "className", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass.$2", + "type": "boolean", + "tags": [], + "label": "toggleSwitch", + "description": [], + "signature": [ + "boolean" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass", + "type": "Function", + "tags": [], + "label": "toggleClass", + "description": [], + "signature": [ + "{ (className: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (className: string, toggleSwitch: boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (toggleSwitch?: boolean | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, className: string, toggleSwitch: boolean) => string, toggleSwitch?: boolean | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass.$1", + "type": "CompoundType", + "tags": [], + "label": "toggleSwitch", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass", + "type": "Function", + "tags": [], + "label": "toggleClass", + "description": [], + "signature": [ + "{ (className: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (className: string, toggleSwitch: boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (toggleSwitch?: boolean | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, className: string, toggleSwitch: boolean) => string, toggleSwitch?: boolean | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass.$1", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, className: string, toggleSwitch: boolean) => string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toggleClass.$2", + "type": "CompoundType", + "tags": [], + "label": "toggleSwitch", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is", + "type": "Function", + "tags": [], + "label": "is", + "description": [], + "signature": [ + "{ (selector: string): boolean; (element: cheerio.Element): boolean; (element: cheerio.Element[]): boolean; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): boolean; (func: (index: number, element: cheerio.Element) => boolean): boolean; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is", + "type": "Function", + "tags": [], + "label": "is", + "description": [], + "signature": [ + "{ (selector: string): boolean; (element: cheerio.Element): boolean; (element: cheerio.Element[]): boolean; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): boolean; (func: (index: number, element: cheerio.Element) => boolean): boolean; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is", + "type": "Function", + "tags": [], + "label": "is", + "description": [], + "signature": [ + "{ (selector: string): boolean; (element: cheerio.Element): boolean; (element: cheerio.Element[]): boolean; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): boolean; (func: (index: number, element: cheerio.Element) => boolean): boolean; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is.$1", + "type": "Array", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is", + "type": "Function", + "tags": [], + "label": "is", + "description": [], + "signature": [ + "{ (selector: string): boolean; (element: cheerio.Element): boolean; (element: cheerio.Element[]): boolean; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): boolean; (func: (index: number, element: cheerio.Element) => boolean): boolean; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is.$1", + "type": "Object", + "tags": [], + "label": "selection", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is", + "type": "Function", + "tags": [], + "label": "is", + "description": [], + "signature": [ + "{ (selector: string): boolean; (element: cheerio.Element): boolean; (element: cheerio.Element[]): boolean; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): boolean; (func: (index: number, element: cheerio.Element) => boolean): boolean; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.is.$1", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, element: cheerio.Element) => boolean" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.serialize", + "type": "Function", + "tags": [], + "label": "serialize", + "description": [], + "signature": [ + "() => string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.serializeArray", + "type": "Function", + "tags": [], + "label": "serializeArray", + "description": [], + "signature": [ + "() => { name: string; value: string; }[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.find", + "type": "Function", + "tags": [], + "label": "find", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.find.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.find", + "type": "Function", + "tags": [], + "label": "find", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.find.$1", + "type": "Object", + "tags": [], + "label": "element", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parent", + "type": "Function", + "tags": [], + "label": "parent", + "description": [], + "signature": [ + "(selector?: string | undefined) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parent.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parents", + "type": "Function", + "tags": [], + "label": "parents", + "description": [], + "signature": [ + "(selector?: string | undefined) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parents.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil", + "type": "Function", + "tags": [], + "label": "parentsUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil", + "type": "Function", + "tags": [], + "label": "parentsUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil", + "type": "Function", + "tags": [], + "label": "parentsUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil.$1", + "type": "Object", + "tags": [], + "label": "element", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.parentsUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prop", + "type": "Function", + "tags": [], + "label": "prop", + "description": [], + "signature": [ + "{ (name: string): any; (name: string, value: any): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prop.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prop", + "type": "Function", + "tags": [], + "label": "prop", + "description": [], + "signature": [ + "{ (name: string): any; (name: string, value: any): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prop.$1", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prop.$2", + "type": "Any", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.closest", + "type": "Function", + "tags": [], + "label": "closest", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.closest", + "type": "Function", + "tags": [], + "label": "closest", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.closest.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.next", + "type": "Function", + "tags": [], + "label": "next", + "description": [], + "signature": [ + "(selector?: string | undefined) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.next.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextAll", + "type": "Function", + "tags": [], + "label": "nextAll", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextAll", + "type": "Function", + "tags": [], + "label": "nextAll", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextAll.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil", + "type": "Function", + "tags": [], + "label": "nextUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil", + "type": "Function", + "tags": [], + "label": "nextUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil", + "type": "Function", + "tags": [], + "label": "nextUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil.$1", + "type": "Object", + "tags": [], + "label": "element", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.nextUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prev", + "type": "Function", + "tags": [], + "label": "prev", + "description": [], + "signature": [ + "(selector?: string | undefined) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prev.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevAll", + "type": "Function", + "tags": [], + "label": "prevAll", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevAll", + "type": "Function", + "tags": [], + "label": "prevAll", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevAll.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil", + "type": "Function", + "tags": [], + "label": "prevUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil", + "type": "Function", + "tags": [], + "label": "prevUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil", + "type": "Function", + "tags": [], + "label": "prevUntil", + "description": [], + "signature": [ + "{ (selector?: string | undefined, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element, filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", filter?: string | undefined): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil.$1", + "type": "Object", + "tags": [], + "label": "element", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prevUntil.$2", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.slice", + "type": "Function", + "tags": [], + "label": "slice", + "description": [], + "signature": [ + "(start: number, end?: number | undefined) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.slice.$1", + "type": "number", + "tags": [], + "label": "start", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.slice.$2", + "type": "number", + "tags": [], + "label": "end", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.siblings", + "type": "Function", + "tags": [], + "label": "siblings", + "description": [], + "signature": [ + "(selector?: string | undefined) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.siblings.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.children", + "type": "Function", + "tags": [], + "label": "children", + "description": [], + "signature": [ + "(selector?: string | undefined) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.children.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.contents", + "type": "Function", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.each", + "type": "Function", + "tags": [], + "label": "each", + "description": [], + "signature": [ + "(func: (index: number, element: cheerio.Element) => any) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.each.$1", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, element: cheerio.Element) => any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.map", + "type": "Function", + "tags": [], + "label": "map", + "description": [], + "signature": [ + "(func: (index: number, element: cheerio.Element) => any) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.map.$1", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, element: cheerio.Element) => any" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter", + "type": "Function", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter", + "type": "Function", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter.$1", + "type": "Object", + "tags": [], + "label": "selection", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter", + "type": "Function", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter", + "type": "Function", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter.$1", + "type": "Array", + "tags": [], + "label": "elements", + "description": [], + "signature": [ + "cheerio.Element[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter", + "type": "Function", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.filter.$1", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, element: cheerio.Element) => boolean" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.not", + "type": "Function", + "tags": [], + "label": "not", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.not.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.not", + "type": "Function", + "tags": [], + "label": "not", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.not.$1", + "type": "Object", + "tags": [], + "label": "selection", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.not", + "type": "Function", + "tags": [], + "label": "not", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.not.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.not", + "type": "Function", + "tags": [], + "label": "not", + "description": [], + "signature": [ + "{ (selector: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (func: (index: number, element: cheerio.Element) => boolean): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.not.$1", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, element: cheerio.Element) => boolean" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.first", + "type": "Function", + "tags": [], + "label": "first", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.last", + "type": "Function", + "tags": [], + "label": "last", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.eq", + "type": "Function", + "tags": [], + "label": "eq", + "description": [], + "signature": [ + "(index: number) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.eq.$1", + "type": "number", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.get", + "type": "Function", + "tags": [], + "label": "get", + "description": [], + "signature": [ + "{ (): any[]; (index: number): any; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.get", + "type": "Function", + "tags": [], + "label": "get", + "description": [], + "signature": [ + "{ (): any[]; (index: number): any; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.get.$1", + "type": "number", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.index", + "type": "Function", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "{ (): number; (selector: string): number; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): number; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.index", + "type": "Function", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "{ (): number; (selector: string): number; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): number; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.index.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.index", + "type": "Function", + "tags": [], + "label": "index", + "description": [], + "signature": [ + "{ (): number; (selector: string): number; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): number; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.index.$1", + "type": "Object", + "tags": [], + "label": "selection", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.end", + "type": "Function", + "tags": [], + "label": "end", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add", + "type": "Function", + "tags": [], + "label": "add", + "description": [], + "signature": [ + "{ (selectorOrHtml: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string, context: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add.$1", + "type": "string", + "tags": [], + "label": "selectorOrHtml", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add", + "type": "Function", + "tags": [], + "label": "add", + "description": [], + "signature": [ + "{ (selectorOrHtml: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string, context: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add.$2", + "type": "Object", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "Document" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add", + "type": "Function", + "tags": [], + "label": "add", + "description": [], + "signature": [ + "{ (selectorOrHtml: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string, context: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add", + "type": "Function", + "tags": [], + "label": "add", + "description": [], + "signature": [ + "{ (selectorOrHtml: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string, context: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add.$1", + "type": "Array", + "tags": [], + "label": "elements", + "description": [], + "signature": [ + "cheerio.Element[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add", + "type": "Function", + "tags": [], + "label": "add", + "description": [], + "signature": [ + "{ (selectorOrHtml: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selector: string, context: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (element: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (elements: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (selection: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.add.$1", + "type": "Object", + "tags": [], + "label": "selection", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.addBack", + "type": "Function", + "tags": [], + "label": "addBack", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (filter: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.addBack", + "type": "Function", + "tags": [], + "label": "addBack", + "description": [], + "signature": [ + "{ (): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (filter: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.addBack.$1", + "type": "string", + "tags": [], + "label": "filter", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.appendTo", + "type": "Function", + "tags": [], + "label": "appendTo", + "description": [], + "signature": [ + "(target: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ") => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.appendTo.$1", + "type": "Object", + "tags": [], + "label": "target", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prependTo", + "type": "Function", + "tags": [], + "label": "prependTo", + "description": [], + "signature": [ + "(target: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ") => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prependTo.$1", + "type": "Object", + "tags": [], + "label": "target", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append", + "type": "Function", + "tags": [], + "label": "append", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append.$1", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append", + "type": "Function", + "tags": [], + "label": "append", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append", + "type": "Function", + "tags": [], + "label": "append", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append.$1", + "type": "Array", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append", + "type": "Function", + "tags": [], + "label": "append", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.append.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend", + "type": "Function", + "tags": [], + "label": "prepend", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend.$1", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend", + "type": "Function", + "tags": [], + "label": "prepend", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend", + "type": "Function", + "tags": [], + "label": "prepend", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend.$1", + "type": "Array", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend", + "type": "Function", + "tags": [], + "label": "prepend", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.prepend.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after", + "type": "Function", + "tags": [], + "label": "after", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after.$1", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after", + "type": "Function", + "tags": [], + "label": "after", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after", + "type": "Function", + "tags": [], + "label": "after", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after.$1", + "type": "Array", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after", + "type": "Function", + "tags": [], + "label": "after", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.after.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertAfter", + "type": "Function", + "tags": [], + "label": "insertAfter", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertAfter.$1", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertAfter", + "type": "Function", + "tags": [], + "label": "insertAfter", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertAfter.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertAfter", + "type": "Function", + "tags": [], + "label": "insertAfter", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertAfter.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before", + "type": "Function", + "tags": [], + "label": "before", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before.$1", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before", + "type": "Function", + "tags": [], + "label": "before", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before", + "type": "Function", + "tags": [], + "label": "before", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before.$1", + "type": "Array", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before", + "type": "Function", + "tags": [], + "label": "before", + "description": [], + "signature": [ + "{ (content: string, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document, ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document[], ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", ...contents: any[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.before.$2", + "type": "Array", + "tags": [], + "label": "contents", + "description": [], + "signature": [ + "any[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertBefore", + "type": "Function", + "tags": [], + "label": "insertBefore", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertBefore.$1", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertBefore", + "type": "Function", + "tags": [], + "label": "insertBefore", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertBefore.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertBefore", + "type": "Function", + "tags": [], + "label": "insertBefore", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.insertBefore.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.remove", + "type": "Function", + "tags": [], + "label": "remove", + "description": [], + "signature": [ + "(selector?: string | undefined) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.remove.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith", + "type": "Function", + "tags": [], + "label": "replaceWith", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: () => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith.$1", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith", + "type": "Function", + "tags": [], + "label": "replaceWith", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: () => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith.$1", + "type": "CompoundType", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith", + "type": "Function", + "tags": [], + "label": "replaceWith", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: () => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith.$1", + "type": "Array", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "cheerio.Element[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith", + "type": "Function", + "tags": [], + "label": "replaceWith", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: () => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith", + "type": "Function", + "tags": [], + "label": "replaceWith", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: cheerio.Element[]): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: () => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.replaceWith.$1", + "type": "Function", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.empty", + "type": "Function", + "tags": [], + "label": "empty", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.html", + "type": "Function", + "tags": [], + "label": "html", + "description": [], + "signature": [ + "{ (): string | null; (html: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.html", + "type": "Function", + "tags": [], + "label": "html", + "description": [], + "signature": [ + "{ (): string | null; (html: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.html.$1", + "type": "string", + "tags": [], + "label": "html", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.text", + "type": "Function", + "tags": [], + "label": "text", + "description": [], + "signature": [ + "{ (): string; (text: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.text", + "type": "Function", + "tags": [], + "label": "text", + "description": [], + "signature": [ + "{ (): string; (text: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.text.$1", + "type": "string", + "tags": [], + "label": "text", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.wrap", + "type": "Function", + "tags": [], + "label": "wrap", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.wrap.$1", + "type": "string", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.wrap", + "type": "Function", + "tags": [], + "label": "wrap", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.wrap.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + "Document" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.wrap", + "type": "Function", + "tags": [], + "label": "wrap", + "description": [], + "signature": [ + "{ (content: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: Document): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (content: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.wrap.$1", + "type": "Object", + "tags": [], + "label": "content", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css", + "type": "Function", + "tags": [], + "label": "css", + "description": [], + "signature": [ + "{ (propertyName: string): string; (propertyNames: string[]): string[]; (propertyName: string, value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, value: number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (properties: Record): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$1", + "type": "string", + "tags": [], + "label": "propertyName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css", + "type": "Function", + "tags": [], + "label": "css", + "description": [], + "signature": [ + "{ (propertyName: string): string; (propertyNames: string[]): string[]; (propertyName: string, value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, value: number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (properties: Record): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$1", + "type": "Array", + "tags": [], + "label": "propertyNames", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css", + "type": "Function", + "tags": [], + "label": "css", + "description": [], + "signature": [ + "{ (propertyName: string): string; (propertyNames: string[]): string[]; (propertyName: string, value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, value: number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (properties: Record): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$1", + "type": "string", + "tags": [], + "label": "propertyName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$2", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css", + "type": "Function", + "tags": [], + "label": "css", + "description": [], + "signature": [ + "{ (propertyName: string): string; (propertyNames: string[]): string[]; (propertyName: string, value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, value: number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (properties: Record): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$1", + "type": "string", + "tags": [], + "label": "propertyName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$2", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css", + "type": "Function", + "tags": [], + "label": "css", + "description": [], + "signature": [ + "{ (propertyName: string): string; (propertyNames: string[]): string[]; (propertyName: string, value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, value: number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (properties: Record): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$1", + "type": "string", + "tags": [], + "label": "propertyName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$2", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, value: string) => string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css", + "type": "Function", + "tags": [], + "label": "css", + "description": [], + "signature": [ + "{ (propertyName: string): string; (propertyNames: string[]): string[]; (propertyName: string, value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, value: number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (properties: Record): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$1", + "type": "string", + "tags": [], + "label": "propertyName", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$2", + "type": "Function", + "tags": [], + "label": "func", + "description": [], + "signature": [ + "(index: number, value: string) => number" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css", + "type": "Function", + "tags": [], + "label": "css", + "description": [], + "signature": [ + "{ (propertyName: string): string; (propertyNames: string[]): string[]; (propertyName: string, value: string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, value: number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => string): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (propertyName: string, func: (index: number, value: string) => number): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; (properties: Record): ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.css.$1", + "type": "Object", + "tags": [], + "label": "properties", + "description": [], + "signature": [ + "Record" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.clone", + "type": "Function", + "tags": [], + "label": "clone", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.toArray", + "type": "Function", + "tags": [], + "label": "toArray", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + "[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.findTestSubjects", + "type": "Function", + "tags": [], + "label": "findTestSubjects", + "description": [], + "signature": [ + "(selector: string) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.findTestSubjects.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.findTestSubject", + "type": "Function", + "tags": [], + "label": "findTestSubject", + "description": [], + "signature": [ + "(selector: string) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerio.findTestSubject.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic", + "type": "Interface", + "tags": [], + "label": "CustomCheerioStatic", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerioStatic", + "text": "CustomCheerioStatic" + }, + " extends CheerioSelector" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.xml", + "type": "Function", + "tags": [], + "label": "xml", + "description": [], + "signature": [ + "() => string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.root", + "type": "Function", + "tags": [], + "label": "root", + "description": [], + "signature": [ + "() => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.contains", + "type": "Function", + "tags": [], + "label": "contains", + "description": [], + "signature": [ + "(container: cheerio.Element, contained: cheerio.Element) => boolean" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.contains.$1", + "type": "CompoundType", + "tags": [], + "label": "container", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.contains.$2", + "type": "CompoundType", + "tags": [], + "label": "contained", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.parseHTML", + "type": "Function", + "tags": [], + "label": "parseHTML", + "description": [], + "signature": [ + "(data: string, context?: Document | undefined, keepScripts?: boolean | undefined) => Document[]" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.parseHTML.$1", + "type": "string", + "tags": [], + "label": "data", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.parseHTML.$2", + "type": "Object", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "Document | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.parseHTML.$3", + "type": "CompoundType", + "tags": [], + "label": "keepScripts", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html", + "type": "Function", + "tags": [], + "label": "html", + "description": [], + "signature": [ + "{ (options?: cheerio.CheerioParserOptions | undefined): string; (selector: string, options?: cheerio.CheerioParserOptions | undefined): string; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", options?: cheerio.CheerioParserOptions | undefined): string; (element: cheerio.Element, options?: cheerio.CheerioParserOptions | undefined): string; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "cheerio.CheerioParserOptions | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html", + "type": "Function", + "tags": [], + "label": "html", + "description": [], + "signature": [ + "{ (options?: cheerio.CheerioParserOptions | undefined): string; (selector: string, options?: cheerio.CheerioParserOptions | undefined): string; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", options?: cheerio.CheerioParserOptions | undefined): string; (element: cheerio.Element, options?: cheerio.CheerioParserOptions | undefined): string; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "cheerio.CheerioParserOptions | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html", + "type": "Function", + "tags": [], + "label": "html", + "description": [], + "signature": [ + "{ (options?: cheerio.CheerioParserOptions | undefined): string; (selector: string, options?: cheerio.CheerioParserOptions | undefined): string; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", options?: cheerio.CheerioParserOptions | undefined): string; (element: cheerio.Element, options?: cheerio.CheerioParserOptions | undefined): string; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html.$1", + "type": "Object", + "tags": [], + "label": "element", + "description": [], + "signature": [ + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "cheerio.CheerioParserOptions | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html", + "type": "Function", + "tags": [], + "label": "html", + "description": [], + "signature": [ + "{ (options?: cheerio.CheerioParserOptions | undefined): string; (selector: string, options?: cheerio.CheerioParserOptions | undefined): string; (element: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + }, + ", options?: cheerio.CheerioParserOptions | undefined): string; (element: cheerio.Element, options?: cheerio.CheerioParserOptions | undefined): string; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html.$1", + "type": "CompoundType", + "tags": [], + "label": "element", + "description": [], + "signature": [ + "cheerio.Element" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.html.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "cheerio.CheerioParserOptions | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.findTestSubjects", + "type": "Function", + "tags": [], + "label": "findTestSubjects", + "description": [], + "signature": [ + "(selector: string) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.findTestSubjects.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.findTestSubject", + "type": "Function", + "tags": [], + "label": "findTestSubject", + "description": [], + "signature": [ + "(selector: string) => ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.CustomCheerio", + "text": "CustomCheerio" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.CustomCheerioStatic.findTestSubject.$1", + "type": "string", + "tags": [], + "label": "selector", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NetworkOptions", + "type": "Interface", + "tags": [], + "label": "NetworkOptions", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NetworkOptions.offline", + "type": "boolean", + "tags": [], + "label": "offline", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NetworkOptions.latency", + "type": "number", + "tags": [], + "label": "latency", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NetworkOptions.download_throughput", + "type": "number", + "tags": [], + "label": "download_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NetworkOptions.upload_throughput", + "type": "number", + "tags": [], + "label": "upload_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TimeoutOpt", + "type": "Interface", + "tags": [], + "label": "TimeoutOpt", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.TimeoutOpt.timeout", + "type": "number", + "tags": [], + "label": "timeout", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.Browsers", + "type": "Enum", + "tags": [], + "label": "Browsers", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/browsers.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "misc": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.Browser", + "type": "Type", + "tags": [], + "label": "Browser", + "description": [], + "signature": [ + "BrowserService" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/browser.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.FtrProviderContext", + "type": "Type", + "tags": [], + "label": "FtrProviderContext", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.GenericFtrProviderContext", + "text": "GenericFtrProviderContext" + }, + "<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/ftr_provider_context.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NetworkProfile", + "type": "Type", + "tags": [], + "label": "NetworkProfile", + "description": [], + "signature": [ + "\"NO_THROTTLING\" | \"FAST_3G\" | \"SLOW_3G\" | \"OFFLINE\" | \"CLOUD_USER\"" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES", + "type": "Object", + "tags": [], + "label": "NETWORK_PROFILES", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.NO_THROTTLING", + "type": "Object", + "tags": [], + "label": "NO_THROTTLING", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.NO_THROTTLING.offline", + "type": "boolean", + "tags": [], + "label": "offline", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.NO_THROTTLING.latency", + "type": "number", + "tags": [], + "label": "latency", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.NO_THROTTLING.download_throughput", + "type": "number", + "tags": [], + "label": "download_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.NO_THROTTLING.upload_throughput", + "type": "number", + "tags": [], + "label": "upload_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.FAST_3G", + "type": "Object", + "tags": [], + "label": "FAST_3G", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.FAST_3G.offline", + "type": "boolean", + "tags": [], + "label": "offline", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.FAST_3G.latency", + "type": "number", + "tags": [], + "label": "latency", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.FAST_3G.download_throughput", + "type": "number", + "tags": [], + "label": "download_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.FAST_3G.upload_throughput", + "type": "number", + "tags": [], + "label": "upload_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.SLOW_3G", + "type": "Object", + "tags": [], + "label": "SLOW_3G", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.SLOW_3G.offline", + "type": "boolean", + "tags": [], + "label": "offline", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.SLOW_3G.latency", + "type": "number", + "tags": [], + "label": "latency", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.SLOW_3G.download_throughput", + "type": "number", + "tags": [], + "label": "download_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.SLOW_3G.upload_throughput", + "type": "number", + "tags": [], + "label": "upload_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.OFFLINE", + "type": "Object", + "tags": [], + "label": "OFFLINE", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.OFFLINE.offline", + "type": "boolean", + "tags": [], + "label": "offline", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.OFFLINE.latency", + "type": "number", + "tags": [], + "label": "latency", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.OFFLINE.download_throughput", + "type": "number", + "tags": [], + "label": "download_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.OFFLINE.upload_throughput", + "type": "number", + "tags": [], + "label": "upload_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.CLOUD_USER", + "type": "Object", + "tags": [], + "label": "CLOUD_USER", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.CLOUD_USER.offline", + "type": "boolean", + "tags": [], + "label": "offline", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.CLOUD_USER.latency", + "type": "number", + "tags": [], + "label": "latency", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.CLOUD_USER.download_throughput", + "type": "number", + "tags": [], + "label": "download_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.NETWORK_PROFILES.CLOUD_USER.upload_throughput", + "type": "number", + "tags": [], + "label": "upload_throughput", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services", + "type": "Object", + "tags": [], + "label": "services", + "description": [], + "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.retryOnStale", + "type": "Function", + "tags": [], + "label": "retryOnStale", + "description": [], + "signature": [ + "({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.retryOnStale.$1", + "type": "Object", + "tags": [], + "label": "__0", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.GenericFtrProviderContext", + "text": "GenericFtrProviderContext" + }, + "<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/retry_on_stale.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.__webdriver__", + "type": "Function", + "tags": [], + "label": "__webdriver__", + "description": [], + "signature": [ + "({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.__webdriver__.$1", + "type": "Object", + "tags": [], + "label": "__0", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.GenericFtrProviderContext", + "text": "GenericFtrProviderContext" + }, + "<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts", + "deprecated": false, + "trackAdoption": false + } + ] }, - "<{ retryOnStale: ({ getService }: ", { - "pluginId": "@kbn/ftr-common-functional-ui-services", - "scope": "common", - "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", - "section": "def-common.FtrProviderContext", - "text": "FtrProviderContext" + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.find", + "type": "Function", + "tags": [], + "label": "find", + "description": [], + "signature": [ + "(ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.find.$1", + "type": "Object", + "tags": [], + "label": "ctx", + "description": [], + "signature": [ + { + "pluginId": "@kbn/test", + "scope": "common", + "docId": "kibKbnTestPluginApi", + "section": "def-common.GenericFtrProviderContext", + "text": "GenericFtrProviderContext" + }, + "<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }>, ProvidedTypeMap<{}>>" + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/find.ts", + "deprecated": false, + "trackAdoption": false + } + ] }, - ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; }, {}, ProvidedTypeMap<{ retryOnStale: ({ getService }: ", { - "pluginId": "@kbn/ftr-common-functional-ui-services", - "scope": "common", - "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", - "section": "def-common.FtrProviderContext", - "text": "FtrProviderContext" + "parentPluginId": "@kbn/ftr-common-functional-ui-services", + "id": "def-common.services.testSubjects", + "type": "Object", + "tags": [], + "label": "testSubjects", + "description": [], + "signature": [ + "typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + } + ], + "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", + "deprecated": false, + "trackAdoption": false }, - ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; }>, ProvidedTypeMap<{}>>" - ], - "path": "packages/kbn-ftr-common-functional-ui-services/services/ftr_provider_context.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - } - ], - "objects": [ - { - "parentPluginId": "@kbn/ftr-common-functional-ui-services", - "id": "def-common.services", - "type": "Object", - "tags": [], - "label": "services", - "description": [], - "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ { "parentPluginId": "@kbn/ftr-common-functional-ui-services", - "id": "def-common.services.retryOnStale", + "id": "def-common.services.browser", "type": "Function", "tags": [], - "label": "retryOnStale", + "label": "browser", "description": [], "signature": [ - "({ getService }: ", + "(ctx: ", { "pluginId": "@kbn/ftr-common-functional-ui-services", "scope": "common", @@ -89,7 +12969,7 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }" + ") => Promise" ], "path": "packages/kbn-ftr-common-functional-ui-services/services/all.ts", "deprecated": false, @@ -98,10 +12978,10 @@ "children": [ { "parentPluginId": "@kbn/ftr-common-functional-ui-services", - "id": "def-common.services.retryOnStale.$1", + "id": "def-common.services.browser.$1", "type": "Object", "tags": [], - "label": "__0", + "label": "ctx", "description": [], "signature": [ { @@ -111,7 +12991,105 @@ "section": "def-common.GenericFtrProviderContext", "text": "GenericFtrProviderContext" }, - "<{ retryOnStale: ({ getService }: ", + "<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise; }, {}, ProvidedTypeMap<{ retry: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalServicesPluginApi", + "section": "def-common.RetryService", + "text": "RetryService" + }, + "; retryOnStale: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; __webdriver__: ({ getService }: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.FtrProviderContext", + "text": "FtrProviderContext" + }, + ") => Promise<{ driver: ", + "WebDriver", + "; browserType: ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.Browsers", + "text": "Browsers" + }, + "; consoleLog$: ", + "Observable", + "<{ message: string; level: string; }>; }>; find: (ctx: ", { "pluginId": "@kbn/ftr-common-functional-ui-services", "scope": "common", @@ -119,7 +13097,17 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; }, {}, ProvidedTypeMap<{ retryOnStale: ({ getService }: ", + ") => Promise<", + "FindService", + ">; testSubjects: typeof ", + { + "pluginId": "@kbn/ftr-common-functional-ui-services", + "scope": "common", + "docId": "kibKbnFtrCommonFunctionalUiServicesPluginApi", + "section": "def-common.TestSubjects", + "text": "TestSubjects" + }, + "; browser: (ctx: ", { "pluginId": "@kbn/ftr-common-functional-ui-services", "scope": "common", @@ -127,9 +13115,9 @@ "section": "def-common.FtrProviderContext", "text": "FtrProviderContext" }, - ") => { (fn: () => Promise): Promise; wrap(fn: (...args: Args) => Promise): (...args: Args) => Promise; }; }>, ProvidedTypeMap<{}>>" + ") => Promise; }>, ProvidedTypeMap<{}>>" ], - "path": "packages/kbn-ftr-common-functional-ui-services/services/retry_on_stale.ts", + "path": "packages/kbn-ftr-common-functional-ui-services/services/browser.ts", "deprecated": false, "trackAdoption": false } diff --git a/api_docs/kbn_ftr_common_functional_ui_services.mdx b/api_docs/kbn_ftr_common_functional_ui_services.mdx index 5ae37e8d16e56..a84044e340f9c 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ftr-common-functional-ui-services'] --- import kbnFtrCommonFunctionalUiServicesObj from './kbn_ftr_common_functional_ui_services.devdocs.json'; @@ -21,13 +21,22 @@ Contact [@elastic/appex-qa](https://github.com/orgs/elastic/teams/appex-qa) for | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 4 | 0 | 4 | 0 | +| 550 | 6 | 510 | 2 | ## Common ### Objects +### Classes + + +### Interfaces + + +### Enums + + ### Consts, variables and types diff --git a/api_docs/kbn_generate.mdx b/api_docs/kbn_generate.mdx index 36eafb28920c1..69fa77dfe42ea 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-01-04 +date: 2024-01-25 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 c1df6a5359777..6eab9e0e38e3b 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_generate_csv.devdocs.json index 1efbfc40df388..994700d9482ea 100644 --- a/api_docs/kbn_generate_csv.devdocs.json +++ b/api_docs/kbn_generate_csv.devdocs.json @@ -10,6 +10,171 @@ }, "server": { "classes": [ + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator", + "type": "Class", + "tags": [], + "label": "CsvESQLGenerator", + "description": [], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator.Unnamed", + "type": "Function", + "tags": [], + "label": "Constructor", + "description": [], + "signature": [ + "any" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator.Unnamed.$1", + "type": "Object", + "tags": [], + "label": "job", + "description": [], + "signature": [ + { + "pluginId": "@kbn/generate-csv", + "scope": "server", + "docId": "kibKbnGenerateCsvPluginApi", + "section": "def-server.JobParamsCsvESQL", + "text": "JobParamsCsvESQL" + } + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator.Unnamed.$2", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + "Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.ByteSizeValue", + "text": "ByteSizeValue" + }, + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator.Unnamed.$3", + "type": "Object", + "tags": [], + "label": "clients", + "description": [], + "signature": [ + "Clients" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator.Unnamed.$4", + "type": "Object", + "tags": [], + "label": "cancellationToken", + "description": [], + "signature": [ + { + "pluginId": "@kbn/reporting-common", + "scope": "common", + "docId": "kibKbnReportingCommonPluginApi", + "section": "def-common.CancellationToken", + "text": "CancellationToken" + } + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator.Unnamed.$5", + "type": "Object", + "tags": [], + "label": "logger", + "description": [], + "signature": [ + { + "pluginId": "@kbn/logging", + "scope": "common", + "docId": "kibKbnLoggingPluginApi", + "section": "def-common.Logger", + "text": "Logger" + } + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator.Unnamed.$6", + "type": "Object", + "tags": [], + "label": "stream", + "description": [], + "signature": [ + "Writable" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvESQLGenerator.generateData", + "type": "Function", + "tags": [], + "label": "generateData", + "description": [], + "signature": [ + "() => Promise<", + "TaskRunResult", + ">" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/generate-csv", "id": "def-server.CsvGenerator", @@ -80,6 +245,21 @@ "id": "def-server.CsvGenerator.Unnamed.$3", "type": "Object", "tags": [], + "label": "taskInstanceFields", + "description": [], + "signature": [ + "TaskInstanceFields" + ], + "path": "packages/kbn-generate-csv/src/generate_csv.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.CsvGenerator.Unnamed.$4", + "type": "Object", + "tags": [], "label": "clients", "description": [], "signature": [ @@ -92,7 +272,7 @@ }, { "parentPluginId": "@kbn/generate-csv", - "id": "def-server.CsvGenerator.Unnamed.$4", + "id": "def-server.CsvGenerator.Unnamed.$5", "type": "Object", "tags": [], "label": "dependencies", @@ -107,7 +287,7 @@ }, { "parentPluginId": "@kbn/generate-csv", - "id": "def-server.CsvGenerator.Unnamed.$5", + "id": "def-server.CsvGenerator.Unnamed.$6", "type": "Object", "tags": [], "label": "cancellationToken", @@ -128,7 +308,7 @@ }, { "parentPluginId": "@kbn/generate-csv", - "id": "def-server.CsvGenerator.Unnamed.$6", + "id": "def-server.CsvGenerator.Unnamed.$7", "type": "Object", "tags": [], "label": "logger", @@ -149,7 +329,7 @@ }, { "parentPluginId": "@kbn/generate-csv", - "id": "def-server.CsvGenerator.Unnamed.$7", + "id": "def-server.CsvGenerator.Unnamed.$8", "type": "Object", "tags": [], "label": "stream", @@ -188,7 +368,85 @@ } ], "functions": [], - "interfaces": [], + "interfaces": [ + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.JobParamsCsvESQL", + "type": "Interface", + "tags": [], + "label": "JobParamsCsvESQL", + "description": [], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.JobParamsCsvESQL.query", + "type": "Object", + "tags": [], + "label": "query", + "description": [], + "signature": [ + "{ esql: string; }" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.JobParamsCsvESQL.columns", + "type": "Array", + "tags": [], + "label": "columns", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.JobParamsCsvESQL.filters", + "type": "Array", + "tags": [], + "label": "filters", + "description": [], + "signature": [ + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/generate-csv", + "id": "def-server.JobParamsCsvESQL.browserTimezone", + "type": "string", + "tags": [], + "label": "browserTimezone", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-generate-csv/src/generate_csv_esql.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], "enums": [], "misc": [], "objects": [] diff --git a/api_docs/kbn_generate_csv.mdx b/api_docs/kbn_generate_csv.mdx index 7bac3ecd7910f..1b9eb045e55af 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/generate-csv'] --- import kbnGenerateCsvObj from './kbn_generate_csv.devdocs.json'; @@ -21,10 +21,13 @@ Contact [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sh | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 10 | 0 | 10 | 1 | +| 25 | 0 | 25 | 1 | ## Server ### Classes +### Interfaces + + diff --git a/api_docs/kbn_guided_onboarding.mdx b/api_docs/kbn_guided_onboarding.mdx index db5cdc5bfb7da..1dbdd19451895 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-01-04 +date: 2024-01-25 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 6a0befe70ba7f..40392bf56d03b 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/handlebars'] --- import kbnHandlebarsObj from './kbn_handlebars.devdocs.json'; diff --git a/api_docs/kbn_hapi_mocks.devdocs.json b/api_docs/kbn_hapi_mocks.devdocs.json index d093b8e00819d..75d572d502e8d 100644 --- a/api_docs/kbn_hapi_mocks.devdocs.json +++ b/api_docs/kbn_hapi_mocks.devdocs.json @@ -205,8 +205,8 @@ "text": "DeepPartialObject" }, "<", - "ResponseObject", - "> | ", + "Boom", + "> | ", { "pluginId": "@kbn/utility-types", "scope": "common", @@ -215,8 +215,8 @@ "text": "DeepPartialObject" }, "<", - "Boom", - "> | undefined; readonly preResponses?: ", + "ResponseObject", + "> | undefined; readonly preResponses?: ", { "pluginId": "@kbn/utility-types", "scope": "common", diff --git a/api_docs/kbn_hapi_mocks.mdx b/api_docs/kbn_hapi_mocks.mdx index bb37a568b1ec5..a10c32d4d4829 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-01-04 +date: 2024-01-25 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 627e55d7366ab..7602f9e5653ed 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-01-04 +date: 2024-01-25 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 441e0efe22fd7..cbaddaa1bac71 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-01-04 +date: 2024-01-25 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 6799d3dd72d8a..00492153647ff 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-01-04 +date: 2024-01-25 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 8a55b88394817..d2f9e1890d8d7 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-01-04 +date: 2024-01-25 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 11fa0001cf29a..184a28e3a68ac 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-01-04 +date: 2024-01-25 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 ec1fb89e48854..70e7a5a82991e 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/import-resolver'] --- import kbnImportResolverObj from './kbn_import_resolver.devdocs.json'; diff --git a/api_docs/kbn_infra_forge.mdx b/api_docs/kbn_infra_forge.mdx index 7f40747ccdcba..996cb5b76c7b8 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-01-04 +date: 2024-01-25 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 6ac0d16ef0a88..85ab1829c3c41 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/interpreter'] --- import kbnInterpreterObj from './kbn_interpreter.devdocs.json'; diff --git a/api_docs/kbn_io_ts_utils.mdx b/api_docs/kbn_io_ts_utils.mdx index 75987734e69fd..694c6117e521a 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/io-ts-utils'] --- import kbnIoTsUtilsObj from './kbn_io_ts_utils.devdocs.json'; diff --git a/api_docs/kbn_jest_serializers.mdx b/api_docs/kbn_jest_serializers.mdx index 9e823e2397576..b115750bf383a 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-01-04 +date: 2024-01-25 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 8f1a3030fbbb7..c91aa0971b83f 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-01-04 +date: 2024-01-25 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 c49f1a87109fb..9d76bf8d30acf 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/json-ast'] --- import kbnJsonAstObj from './kbn_json_ast.devdocs.json'; diff --git a/api_docs/kbn_kibana_manifest_schema.mdx b/api_docs/kbn_kibana_manifest_schema.mdx index 5f60c54d9642c..f431aa8a99dcd 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-01-04 +date: 2024-01-25 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 324f24f8675e0..a2c485c82bc4c 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-01-04 +date: 2024-01-25 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 545336948dd3e..409fdc63a545a 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-01-04 +date: 2024-01-25 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 49d87393a64b1..a6423ba78e0f7 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-01-04 +date: 2024-01-25 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 542f339b089d4..c15d9ccc5da6a 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-01-04 +date: 2024-01-25 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 94d7cca0be296..e03c0885d0072 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-01-04 +date: 2024-01-25 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 new file mode 100644 index 0000000000000..9eee12d881aff --- /dev/null +++ b/api_docs/kbn_managed_content_badge.devdocs.json @@ -0,0 +1,63 @@ +{ + "id": "@kbn/managed-content-badge", + "client": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/managed-content-badge", + "id": "def-public.getManagedContentBadge", + "type": "Function", + "tags": [], + "label": "getManagedContentBadge", + "description": [], + "signature": [ + "(tooltipText: string) => { 'data-test-subj': string; badgeText: string; title: string; color: string; iconType: string; toolTipProps: ", + "EuiToolTipProps", + "; }" + ], + "path": "packages/kbn-managed-content-badge/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/managed-content-badge", + "id": "def-public.getManagedContentBadge.$1", + "type": "string", + "tags": [], + "label": "tooltipText", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-managed-content-badge/index.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "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_managed_content_badge.mdx b/api_docs/kbn_managed_content_badge.mdx new file mode 100644 index 0000000000000..b107aa4f8c3ad --- /dev/null +++ b/api_docs/kbn_managed_content_badge.mdx @@ -0,0 +1,30 @@ +--- +#### +#### 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: kibKbnManagedContentBadgePluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/managed-content-badge'] +--- +import kbnManagedContentBadgeObj from './kbn_managed_content_badge.devdocs.json'; + + + +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 2 | 0 | 2 | 0 | + +## Client + +### Functions + + diff --git a/api_docs/kbn_managed_vscode_config.mdx b/api_docs/kbn_managed_vscode_config.mdx index bc1555c584f97..a55af611af260 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-01-04 +date: 2024-01-25 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 1bdb160fbc40a..28b41c0bbb449 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-01-04 +date: 2024-01-25 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 19b9ea606ec35..a8716e1b40314 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_management_settings_components_field_category.devdocs.json index b827fb33bad72..300e0ecf3ab4a 100644 --- a/api_docs/kbn_management_settings_components_field_category.devdocs.json +++ b/api_docs/kbn_management_settings_components_field_category.devdocs.json @@ -354,7 +354,13 @@ "label": "categoryCounts", "description": [], "signature": [ - "{ [category: string]: number; }" + { + "pluginId": "@kbn/management-settings-types", + "scope": "common", + "docId": "kibKbnManagementSettingsTypesPluginApi", + "section": "def-common.CategoryCounts", + "text": "CategoryCounts" + } ], "path": "packages/kbn-management/settings/components/field_category/categories.tsx", "deprecated": false, diff --git a/api_docs/kbn_management_settings_components_field_category.mdx b/api_docs/kbn_management_settings_components_field_category.mdx index affa6056621a0..0d2fb423694dc 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-01-04 +date: 2024-01-25 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 8ee7f834f3c6a..862bf6c246795 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_management_settings_components_field_row.devdocs.json index 052a3e23ff500..cd5f91dc13d4c 100644 --- a/api_docs/kbn_management_settings_components_field_row.devdocs.json +++ b/api_docs/kbn_management_settings_components_field_row.devdocs.json @@ -203,7 +203,7 @@ "section": "def-common.UiSettingsType", "text": "UiSettingsType" }, - "; id: string; defaultValue?: string | number | boolean | (string | number)[] | null | undefined; name: string; groupId: string; displayName: string; isCustom: boolean; isOverridden: boolean; ariaAttributes: { ariaLabel: string; ariaDescribedBy?: string | undefined; }; savedValue?: string | number | boolean | (string | number)[] | null | undefined; defaultValueDisplay: string; isDefaultValue: boolean; unsavedFieldId: string; }" + "; id: string; defaultValue?: string | number | boolean | (string | number)[] | null | undefined; name: string; displayName: string; groupId: string; isCustom: boolean; isOverridden: boolean; ariaAttributes: { ariaLabel: string; ariaDescribedBy?: string | undefined; }; savedValue?: string | number | boolean | (string | number)[] | null | undefined; defaultValueDisplay: string; isDefaultValue: boolean; unsavedFieldId: string; }" ], "path": "packages/kbn-management/settings/components/field_row/field_row.tsx", "deprecated": false, diff --git a/api_docs/kbn_management_settings_components_field_row.mdx b/api_docs/kbn_management_settings_components_field_row.mdx index 68a0b2989d6d8..69b677b08b30f 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-01-04 +date: 2024-01-25 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 01813717bb7ba..50753944c4680 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-01-04 +date: 2024-01-25 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 8c23fe69ea36b..f51212ef809f4 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-field-definition'] --- import kbnManagementSettingsFieldDefinitionObj from './kbn_management_settings_field_definition.devdocs.json'; diff --git a/api_docs/kbn_management_settings_ids.devdocs.json b/api_docs/kbn_management_settings_ids.devdocs.json index dfb4567885ff4..26d5541422881 100644 --- a/api_docs/kbn_management_settings_ids.devdocs.json +++ b/api_docs/kbn_management_settings_ids.devdocs.json @@ -1192,6 +1192,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "@kbn/management-settings-ids", + "id": "def-common.OBSERVABILITY_APM_ENABLE_TABLE_SEARCH_BAR", + "type": "string", + "tags": [], + "label": "OBSERVABILITY_APM_ENABLE_TABLE_SEARCH_BAR", + "description": [], + "signature": [ + "\"observability:apmEnableTableSearchBar\"" + ], + "path": "packages/kbn-management/settings/setting_ids/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/management-settings-ids", "id": "def-common.OBSERVABILITY_APM_LABS_BUTTON_ID", diff --git a/api_docs/kbn_management_settings_ids.mdx b/api_docs/kbn_management_settings_ids.mdx index a2af9654d6fd7..361845a4779fa 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-ids'] --- import kbnManagementSettingsIdsObj from './kbn_management_settings_ids.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/appex-sharedux @elastic/platform-deployment-management](https: | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 132 | 0 | 130 | 0 | +| 133 | 0 | 131 | 0 | ## Common diff --git a/api_docs/kbn_management_settings_section_registry.mdx b/api_docs/kbn_management_settings_section_registry.mdx index d8c9c2b467eae..36dcc71c0b06a 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-01-04 +date: 2024-01-25 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 c4ac18ed37f62..7e5559286fffd 100644 --- a/api_docs/kbn_management_settings_types.devdocs.json +++ b/api_docs/kbn_management_settings_types.devdocs.json @@ -64,6 +64,34 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/management-settings-types", + "id": "def-common.CategoryCounts", + "type": "Interface", + "tags": [], + "label": "CategoryCounts", + "description": [], + "path": "packages/kbn-management/settings/types/category.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/management-settings-types", + "id": "def-common.CategoryCounts.Unnamed", + "type": "IndexSignature", + "tags": [], + "label": "[category: string]: number", + "description": [], + "signature": [ + "[category: string]: number" + ], + "path": "packages/kbn-management/settings/types/category.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/management-settings-types", "id": "def-common.FieldDefinition", @@ -1141,7 +1169,7 @@ "\nThis is a narrowing type, which finds the correct primitive type based on a\ngiven {@link SettingType}." ], "signature": [ - "T extends \"string\" | \"color\" | \"image\" | \"select\" | \"json\" | \"markdown\" ? string : T extends \"boolean\" ? boolean : T extends \"number\" | \"bigint\" ? number : T extends \"array\" ? (string | number)[] : T extends \"undefined\" ? undefined : never" + "T extends \"string\" | \"select\" | \"image\" | \"color\" | \"json\" | \"markdown\" ? string : T extends \"boolean\" ? boolean : T extends \"number\" | \"bigint\" ? number : T extends \"array\" ? (string | number)[] : T extends \"undefined\" ? undefined : never" ], "path": "packages/kbn-management/settings/types/setting_type.ts", "deprecated": false, @@ -1499,7 +1527,7 @@ "\nThis is a local type equivalent to {@link UiSettingsType} for flexibility." ], "signature": [ - "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"color\" | \"image\" | \"select\" | \"json\" | \"markdown\" | \"array\"" + "\"string\" | \"number\" | \"boolean\" | \"undefined\" | \"select\" | \"image\" | \"color\" | \"json\" | \"array\" | \"markdown\"" ], "path": "packages/kbn-management/settings/types/setting_type.ts", "deprecated": false, @@ -1540,7 +1568,7 @@ "\nA narrowing type representing all {@link SettingType} values that correspond\nto an `string` primitive type value." ], "signature": [ - "\"string\" | \"color\" | \"image\" | \"select\" | \"json\" | \"markdown\"" + "\"string\" | \"select\" | \"image\" | \"color\" | \"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 843c1a1a00164..31a6719a0e4cd 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-types'] --- import kbnManagementSettingsTypesObj from './kbn_management_settings_types.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/platform-deployment-management](https://github.com/orgs/elasti | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 81 | 0 | 3 | 0 | +| 83 | 0 | 5 | 0 | ## Common diff --git a/api_docs/kbn_management_settings_utilities.devdocs.json b/api_docs/kbn_management_settings_utilities.devdocs.json index b443c15d3ee17..2473fd5ea16f5 100644 --- a/api_docs/kbn_management_settings_utilities.devdocs.json +++ b/api_docs/kbn_management_settings_utilities.devdocs.json @@ -90,6 +90,83 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/management-settings-utilities", + "id": "def-common.getCategoryCounts", + "type": "Function", + "tags": [], + "label": "getCategoryCounts", + "description": [ + "\nUtility function to extract the number of fields in each settings category." + ], + "signature": [ + "(fields: ", + { + "pluginId": "@kbn/management-settings-types", + "scope": "common", + "docId": "kibKbnManagementSettingsTypesPluginApi", + "section": "def-common.FieldDefinition", + "text": "FieldDefinition" + }, + "<", + { + "pluginId": "@kbn/core-ui-settings-common", + "scope": "common", + "docId": "kibKbnCoreUiSettingsCommonPluginApi", + "section": "def-common.UiSettingsType", + "text": "UiSettingsType" + }, + ", string | number | boolean | (string | number)[] | null | undefined>[]) => ", + { + "pluginId": "@kbn/management-settings-types", + "scope": "common", + "docId": "kibKbnManagementSettingsTypesPluginApi", + "section": "def-common.CategoryCounts", + "text": "CategoryCounts" + } + ], + "path": "packages/kbn-management/settings/utilities/category/get_category_counts.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/management-settings-utilities", + "id": "def-common.getCategoryCounts.$1", + "type": "Array", + "tags": [], + "label": "fields", + "description": [ + "A list of {@link FieldDefinition } objects." + ], + "signature": [ + { + "pluginId": "@kbn/management-settings-types", + "scope": "common", + "docId": "kibKbnManagementSettingsTypesPluginApi", + "section": "def-common.FieldDefinition", + "text": "FieldDefinition" + }, + "<", + { + "pluginId": "@kbn/core-ui-settings-common", + "scope": "common", + "docId": "kibKbnCoreUiSettingsCommonPluginApi", + "section": "def-common.UiSettingsType", + "text": "UiSettingsType" + }, + ", string | number | boolean | (string | number)[] | null | undefined>[]" + ], + "path": "packages/kbn-management/settings/utilities/category/get_category_counts.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [ + "A {@link CategoryCounts } object." + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/management-settings-utilities", "id": "def-common.getCategoryName", diff --git a/api_docs/kbn_management_settings_utilities.mdx b/api_docs/kbn_management_settings_utilities.mdx index 3c816e2185887..a55793f6d087d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/management-settings-utilities'] --- import kbnManagementSettingsUtilitiesObj from './kbn_management_settings_utilities.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/platform-deployment-management](https://github.com/orgs/elasti | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 54 | 0 | 6 | 0 | +| 56 | 0 | 6 | 0 | ## Common diff --git a/api_docs/kbn_management_storybook_config.mdx b/api_docs/kbn_management_storybook_config.mdx index eba599a7e5075..5eebefc00a1bd 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_mapbox_gl.devdocs.json index b3517dd00c74b..0be4f729b7150 100644 --- a/api_docs/kbn_mapbox_gl.devdocs.json +++ b/api_docs/kbn_mapbox_gl.devdocs.json @@ -9009,7 +9009,7 @@ "label": "sourceDataType", "description": [], "signature": [ - "\"content\" | \"metadata\" | \"visibility\" | \"idle\"" + "\"metadata\" | \"content\" | \"visibility\" | \"idle\"" ], "path": "node_modules/maplibre-gl/dist/maplibre-gl.d.ts", "deprecated": false, @@ -9592,7 +9592,7 @@ "label": "MapEvent", "description": [], "signature": [ - "\"error\" | \"remove\" | \"data\" | \"render\" | \"rotate\" | \"resize\" | \"idle\" | \"zoom\" | \"load\" | \"move\" | \"mousedown\" | \"mouseup\" | \"mouseover\" | \"mousemove\" | \"click\" | \"dblclick\" | \"mouseenter\" | \"mouseleave\" | \"mouseout\" | \"contextmenu\" | \"wheel\" | \"touchstart\" | \"touchend\" | \"touchmove\" | \"touchcancel\" | \"movestart\" | \"moveend\" | \"dragstart\" | \"drag\" | \"dragend\" | \"zoomstart\" | \"zoomend\" | \"rotatestart\" | \"rotateend\" | \"pitchstart\" | \"pitch\" | \"pitchend\" | \"boxzoomstart\" | \"boxzoomend\" | \"boxzoomcancel\" | \"webglcontextlost\" | \"webglcontextrestored\" | \"styledata\" | \"sourcedata\" | \"dataloading\" | \"styledataloading\" | \"sourcedataloading\" | \"styleimagemissing\" | \"style.load\" | \"terrain\" | \"dataabort\" | \"sourcedataabort\"" + "\"error\" | \"data\" | \"remove\" | \"render\" | \"rotate\" | \"resize\" | \"idle\" | \"zoom\" | \"load\" | \"move\" | \"mousedown\" | \"mouseup\" | \"mouseover\" | \"mousemove\" | \"click\" | \"dblclick\" | \"mouseenter\" | \"mouseleave\" | \"mouseout\" | \"contextmenu\" | \"wheel\" | \"touchstart\" | \"touchend\" | \"touchmove\" | \"touchcancel\" | \"movestart\" | \"moveend\" | \"dragstart\" | \"drag\" | \"dragend\" | \"zoomstart\" | \"zoomend\" | \"rotatestart\" | \"rotateend\" | \"pitchstart\" | \"pitch\" | \"pitchend\" | \"boxzoomstart\" | \"boxzoomend\" | \"boxzoomcancel\" | \"webglcontextlost\" | \"webglcontextrestored\" | \"styledata\" | \"sourcedata\" | \"dataloading\" | \"styledataloading\" | \"sourcedataloading\" | \"styleimagemissing\" | \"style.load\" | \"terrain\" | \"dataabort\" | \"sourcedataabort\"" ], "path": "node_modules/maplibre-gl/dist/maplibre-gl.d.ts", "deprecated": false, diff --git a/api_docs/kbn_mapbox_gl.mdx b/api_docs/kbn_mapbox_gl.mdx index 1f5342d2c4d1c..22f8bd0275bb0 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-01-04 +date: 2024-01-25 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 c9bd0585c6686..93f355497f8dd 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/maps-vector-tile-utils'] --- import kbnMapsVectorTileUtilsObj from './kbn_maps_vector_tile_utils.devdocs.json'; diff --git a/api_docs/kbn_ml_agg_utils.mdx b/api_docs/kbn_ml_agg_utils.mdx index 5d2de4f593d7a..2db4eea0d22f2 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-01-04 +date: 2024-01-25 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 4ae0cd37048f3..52b5a53b7dd81 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-01-04 +date: 2024-01-25 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_category_validator.mdx b/api_docs/kbn_ml_category_validator.mdx index 1749b7b94941d..f4c746359eaba 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-01-04 +date: 2024-01-25 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 87aa68a02ce1e..639b063807f3b 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-01-04 +date: 2024-01-25 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 b51e24cfc9e02..5fba90af108eb 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-01-04 +date: 2024-01-25 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 15704541aba35..2e3318999ecfa 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-data-grid'] --- import kbnMlDataGridObj from './kbn_ml_data_grid.devdocs.json'; diff --git a/api_docs/kbn_ml_date_picker.mdx b/api_docs/kbn_ml_date_picker.mdx index 7f1d1f24f296b..50a1d9999b6a2 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-01-04 +date: 2024-01-25 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 32d332cb36251..6844555f6a6a3 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-01-04 +date: 2024-01-25 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 0817c29408526..b797b5e9462b8 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_ml_in_memory_table.devdocs.json index 4f21249865b51..6d72e5a158c23 100644 --- a/api_docs/kbn_ml_in_memory_table.devdocs.json +++ b/api_docs/kbn_ml_in_memory_table.devdocs.json @@ -29,7 +29,9 @@ "\nHook to help with managing the pagination and sorting for EuiInMemoryTable" ], "signature": [ - "(items: T[], initialSortField: string, initialSortDirection: \"asc\" | \"desc\") => { onTableChange: ({ page, sort }: ", + "(items: T[], initialSortField: string, initialSortDirection: \"asc\" | \"desc\", initialPagionation: Partial<", + "Pagination", + "> | undefined) => { onTableChange: ({ page, sort }: ", "Criteria", ") => void; pagination: ", "Pagination", @@ -91,6 +93,23 @@ "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "@kbn/ml-in-memory-table", + "id": "def-common.useTableState.$4", + "type": "Object", + "tags": [], + "label": "initialPagionation", + "description": [], + "signature": [ + "Partial<", + "Pagination", + "> | undefined" + ], + "path": "x-pack/packages/ml/in_memory_table/hooks/use_table_state.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [], diff --git a/api_docs/kbn_ml_in_memory_table.mdx b/api_docs/kbn_ml_in_memory_table.mdx index 7b99edefb5d33..5849195fd9082 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-in-memory-table'] --- import kbnMlInMemoryTableObj from './kbn_ml_in_memory_table.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 | |-------------------|-----------|------------------------|-----------------| -| 11 | 0 | 0 | 0 | +| 12 | 0 | 1 | 0 | ## Common diff --git a/api_docs/kbn_ml_is_defined.mdx b/api_docs/kbn_ml_is_defined.mdx index ba7f8df01c943..af38562b5b1af 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-01-04 +date: 2024-01-25 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 cc3caa796ca3f..e62ec443a3aaa 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-01-04 +date: 2024-01-25 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 2baaadefca37e..30d8dc4b5b357 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-01-04 +date: 2024-01-25 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 9c43a57f9ec49..da4075540ba4e 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-01-04 +date: 2024-01-25 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 ea76351c49442..35a3b54060029 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-01-04 +date: 2024-01-25 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 8d5b4fd623e5c..75547027c6bad 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-01-04 +date: 2024-01-25 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 c647a2df0a9e5..d6b1a4f2008cb 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-01-04 +date: 2024-01-25 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 a841aba311646..efed3c92bcaa7 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-01-04 +date: 2024-01-25 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 ccd80736003c1..0645a53808d71 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-01-04 +date: 2024-01-25 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 492263a8f3d01..f442e828cfd48 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-01-04 +date: 2024-01-25 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 f25d70b6cd1f1..124053edcac28 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-01-04 +date: 2024-01-25 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_trained_models_utils.mdx b/api_docs/kbn_ml_trained_models_utils.mdx index a11036a8ec060..6d835c03ff0bb 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-01-04 +date: 2024-01-25 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 77579773f2d25..61a7b3cf191b3 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-ui-actions'] --- import kbnMlUiActionsObj from './kbn_ml_ui_actions.devdocs.json'; diff --git a/api_docs/kbn_ml_url_state.mdx b/api_docs/kbn_ml_url_state.mdx index eb3fc4d159e98..0b18358265d5e 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ml-url-state'] --- import kbnMlUrlStateObj from './kbn_ml_url_state.devdocs.json'; diff --git a/api_docs/kbn_mock_idp_utils.devdocs.json b/api_docs/kbn_mock_idp_utils.devdocs.json new file mode 100644 index 0000000000000..991b274f3f7d5 --- /dev/null +++ b/api_docs/kbn_mock_idp_utils.devdocs.json @@ -0,0 +1,415 @@ +{ + "id": "@kbn/mock-idp-utils", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createMockIdpMetadata", + "type": "Function", + "tags": [], + "label": "createMockIdpMetadata", + "description": [ + "\nCreates XML metadata for our mock identity provider.\n\nThis can be saved to file and used to configure Elasticsearch SAML realm.\n" + ], + "signature": [ + "(kibanaUrl: string) => Promise" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createMockIdpMetadata.$1", + "type": "string", + "tags": [], + "label": "kibanaUrl", + "description": [ + "Fully qualified URL where Kibana is hosted (including base path)" + ], + "signature": [ + "string" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createSAMLResponse", + "type": "Function", + "tags": [], + "label": "createSAMLResponse", + "description": [ + "\nCreates a SAML response that can be passed directly to the Kibana ACS endpoint to authenticate a user.\n" + ], + "signature": [ + "(options: { kibanaUrl: string; authnRequestId?: string | undefined; username: string; full_name?: string | undefined; email?: string | undefined; roles: string[]; }) => Promise" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createSAMLResponse.$1", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createSAMLResponse.$1.kibanaUrl", + "type": "string", + "tags": [], + "label": "kibanaUrl", + "description": [ + "Fully qualified URL where Kibana is hosted (including base path)" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createSAMLResponse.$1.authnRequestId", + "type": "string", + "tags": [], + "label": "authnRequestId", + "description": [ + "ID from SAML authentication request" + ], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createSAMLResponse.$1.username", + "type": "string", + "tags": [], + "label": "username", + "description": [], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createSAMLResponse.$1.full_name", + "type": "string", + "tags": [], + "label": "full_name", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createSAMLResponse.$1.email", + "type": "string", + "tags": [], + "label": "email", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.createSAMLResponse.$1.roles", + "type": "Array", + "tags": [], + "label": "roles", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.ensureSAMLRoleMapping", + "type": "Function", + "tags": [], + "label": "ensureSAMLRoleMapping", + "description": [ + "\nCreates the role mapping required for developers to authenticate using SAML." + ], + "signature": [ + "(client: ", + "default", + ") => Promise" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.ensureSAMLRoleMapping.$1", + "type": "Object", + "tags": [], + "label": "client", + "description": [], + "signature": [ + "default" + ], + "path": "packages/kbn-mock-idp-utils/src/utils.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_ATTRIBUTE_EMAIL", + "type": "string", + "tags": [], + "label": "MOCK_IDP_ATTRIBUTE_EMAIL", + "description": [], + "signature": [ + "\"http://saml.elastic-cloud.com/attributes/email\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_ATTRIBUTE_NAME", + "type": "string", + "tags": [], + "label": "MOCK_IDP_ATTRIBUTE_NAME", + "description": [], + "signature": [ + "\"http://saml.elastic-cloud.com/attributes/name\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_ATTRIBUTE_PRINCIPAL", + "type": "string", + "tags": [], + "label": "MOCK_IDP_ATTRIBUTE_PRINCIPAL", + "description": [], + "signature": [ + "\"http://saml.elastic-cloud.com/attributes/principal\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_ATTRIBUTE_ROLES", + "type": "string", + "tags": [], + "label": "MOCK_IDP_ATTRIBUTE_ROLES", + "description": [], + "signature": [ + "\"http://saml.elastic-cloud.com/attributes/roles\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_ENTITY_ID", + "type": "string", + "tags": [], + "label": "MOCK_IDP_ENTITY_ID", + "description": [], + "signature": [ + "\"urn:mock-idp\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_LOGIN_PATH", + "type": "string", + "tags": [], + "label": "MOCK_IDP_LOGIN_PATH", + "description": [], + "signature": [ + "\"/mock_idp/login\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_LOGOUT_PATH", + "type": "string", + "tags": [], + "label": "MOCK_IDP_LOGOUT_PATH", + "description": [], + "signature": [ + "\"/mock_idp/logout\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_OBSERVABILITY_ROLE_NAMES", + "type": "Array", + "tags": [], + "label": "MOCK_IDP_OBSERVABILITY_ROLE_NAMES", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_REALM_NAME", + "type": "string", + "tags": [], + "label": "MOCK_IDP_REALM_NAME", + "description": [], + "signature": [ + "\"mock-idp\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_REALM_TYPE", + "type": "string", + "tags": [], + "label": "MOCK_IDP_REALM_TYPE", + "description": [], + "signature": [ + "\"saml\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_ROLE_MAPPING_NAME", + "type": "string", + "tags": [], + "label": "MOCK_IDP_ROLE_MAPPING_NAME", + "description": [], + "signature": [ + "\"mock-idp-mapping\"" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_SEARCH_ROLE_NAMES", + "type": "Array", + "tags": [], + "label": "MOCK_IDP_SEARCH_ROLE_NAMES", + "description": [ + "List of roles from `packages/kbn-es/src/serverless_resources/roles.yml`" + ], + "signature": [ + "string[]" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/mock-idp-utils", + "id": "def-common.MOCK_IDP_SECURITY_ROLE_NAMES", + "type": "Array", + "tags": [], + "label": "MOCK_IDP_SECURITY_ROLE_NAMES", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-mock-idp-utils/src/constants.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_mock_idp_utils.mdx b/api_docs/kbn_mock_idp_utils.mdx new file mode 100644 index 0000000000000..e1e0e2792801f --- /dev/null +++ b/api_docs/kbn_mock_idp_utils.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: kibKbnMockIdpUtilsPluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/mock-idp-utils'] +--- +import kbnMockIdpUtilsObj from './kbn_mock_idp_utils.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 | 18 | 0 | + +## Common + +### Functions + + +### Consts, variables and types + + diff --git a/api_docs/kbn_monaco.mdx b/api_docs/kbn_monaco.mdx index af33db98bd479..761346132a0d8 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/monaco'] --- import kbnMonacoObj from './kbn_monaco.devdocs.json'; diff --git a/api_docs/kbn_object_versioning.mdx b/api_docs/kbn_object_versioning.mdx index 3a7f7718854db..40bb7bfffceed 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-01-04 +date: 2024-01-25 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 c9745d645c585..9dd45ab0a92f9 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/observability-alert-details'] --- import kbnObservabilityAlertDetailsObj from './kbn_observability_alert_details.devdocs.json'; diff --git a/api_docs/kbn_observability_alerting_test_data.mdx b/api_docs/kbn_observability_alerting_test_data.mdx index 42a2150e00911..5f7cd3dcbe78c 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-01-04 +date: 2024-01-25 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 b13a5137b825e..7067c71fbc703 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-01-04 +date: 2024-01-25 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 bd8a7f9a511aa..93732a15115da 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-bundler'] --- import kbnOpenapiBundlerObj from './kbn_openapi_bundler.devdocs.json'; diff --git a/api_docs/kbn_openapi_generator.devdocs.json b/api_docs/kbn_openapi_generator.devdocs.json index 9aaaea230439e..9702da67030b1 100644 --- a/api_docs/kbn_openapi_generator.devdocs.json +++ b/api_docs/kbn_openapi_generator.devdocs.json @@ -66,6 +66,53 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/openapi-generator", + "id": "def-common.lint", + "type": "Function", + "tags": [], + "label": "lint", + "description": [], + "signature": [ + "(config: ", + { + "pluginId": "@kbn/openapi-generator", + "scope": "common", + "docId": "kibKbnOpenapiGeneratorPluginApi", + "section": "def-common.LinterConfig", + "text": "LinterConfig" + }, + ") => Promise" + ], + "path": "packages/kbn-openapi-generator/src/openapi_linter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/openapi-generator", + "id": "def-common.lint.$1", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "signature": [ + { + "pluginId": "@kbn/openapi-generator", + "scope": "common", + "docId": "kibKbnOpenapiGeneratorPluginApi", + "section": "def-common.LinterConfig", + "text": "LinterConfig" + } + ], + "path": "packages/kbn-openapi-generator/src/openapi_linter.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/openapi-generator", "id": "def-common.runCli", @@ -131,6 +178,56 @@ "path": "packages/kbn-openapi-generator/src/openapi_generator.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/openapi-generator", + "id": "def-common.GeneratorConfig.skipLinting", + "type": "CompoundType", + "tags": [], + "label": "skipLinting", + "description": [], + "signature": [ + "boolean | undefined" + ], + "path": "packages/kbn-openapi-generator/src/openapi_generator.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/openapi-generator", + "id": "def-common.LinterConfig", + "type": "Interface", + "tags": [], + "label": "LinterConfig", + "description": [], + "path": "packages/kbn-openapi-generator/src/openapi_linter.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/openapi-generator", + "id": "def-common.LinterConfig.rootDir", + "type": "string", + "tags": [], + "label": "rootDir", + "description": [], + "path": "packages/kbn-openapi-generator/src/openapi_linter.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/openapi-generator", + "id": "def-common.LinterConfig.sourceGlob", + "type": "string", + "tags": [], + "label": "sourceGlob", + "description": [], + "path": "packages/kbn-openapi-generator/src/openapi_linter.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_openapi_generator.mdx b/api_docs/kbn_openapi_generator.mdx index f351063dc53f1..7cccf05ee3f23 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/openapi-generator'] --- import kbnOpenapiGeneratorObj from './kbn_openapi_generator.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-detection-rule-management](https://github.com/orgs/el | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 7 | 0 | 7 | 0 | +| 13 | 0 | 13 | 0 | ## Common diff --git a/api_docs/kbn_optimizer.mdx b/api_docs/kbn_optimizer.mdx index 106de241e3f71..24779473b0823 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-01-04 +date: 2024-01-25 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 3c99f96697c13..614b2a741624b 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-01-04 +date: 2024-01-25 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 9ec21c688095b..58f90be991845 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-01-04 +date: 2024-01-25 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 95b31bd16993f..0643363f93541 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-01-04 +date: 2024-01-25 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 7bb20cc446e44..ae66ea36a2c5a 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_plugin_check.devdocs.json new file mode 100644 index 0000000000000..28ee612a740a9 --- /dev/null +++ b/api_docs/kbn_plugin_check.devdocs.json @@ -0,0 +1,47 @@ +{ + "id": "@kbn/plugin-check", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/plugin-check", + "id": "def-common.runPluginCheckCli", + "type": "Function", + "tags": [], + "label": "runPluginCheckCli", + "description": [ + "\nA CLI for checking the consistency of a plugin's declared and implicit dependencies." + ], + "signature": [ + "() => void" + ], + "path": "packages/kbn-plugin-check/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_plugin_check.mdx b/api_docs/kbn_plugin_check.mdx new file mode 100644 index 0000000000000..d3978651694d5 --- /dev/null +++ b/api_docs/kbn_plugin_check.mdx @@ -0,0 +1,30 @@ +--- +#### +#### 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: kibKbnPluginCheckPluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-check'] +--- +import kbnPluginCheckObj from './kbn_plugin_check.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 | +|-------------------|-----------|------------------------|-----------------| +| 1 | 0 | 0 | 0 | + +## Common + +### Functions + + diff --git a/api_docs/kbn_plugin_generator.mdx b/api_docs/kbn_plugin_generator.mdx index 9a2911c70c02a..5043b9b10a7c9 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-01-04 +date: 2024-01-25 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 0264711c85004..84985db1b70b4 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/plugin-helpers'] --- import kbnPluginHelpersObj from './kbn_plugin_helpers.devdocs.json'; diff --git a/api_docs/kbn_presentation_containers.devdocs.json b/api_docs/kbn_presentation_containers.devdocs.json new file mode 100644 index 0000000000000..2cf16335fe9c2 --- /dev/null +++ b/api_docs/kbn_presentation_containers.devdocs.json @@ -0,0 +1,808 @@ +{ + "id": "@kbn/presentation-containers", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.apiCanDuplicatePanels", + "type": "Function", + "tags": [], + "label": "apiCanDuplicatePanels", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.CanDuplicatePanels", + "text": "CanDuplicatePanels" + } + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.apiCanDuplicatePanels.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.apiCanExpandPanels", + "type": "Function", + "tags": [], + "label": "apiCanExpandPanels", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.CanExpandPanels", + "text": "CanExpandPanels" + } + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.apiCanExpandPanels.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.apiIsPresentationContainer", + "type": "Function", + "tags": [], + "label": "apiIsPresentationContainer", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + } + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.apiIsPresentationContainer.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.getContainerParentFromAPI", + "type": "Function", + "tags": [], + "label": "getContainerParentFromAPI", + "description": [], + "signature": [ + "(api: unknown) => ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.getContainerParentFromAPI.$1", + "type": "Unknown", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.tracksOverlays", + "type": "Function", + "tags": [], + "label": "tracksOverlays", + "description": [], + "signature": [ + "(root: unknown) => root is ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.TracksOverlays", + "text": "TracksOverlays" + } + ], + "path": "packages/presentation/presentation_containers/interfaces/tracks_overlays.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.tracksOverlays.$1", + "type": "Unknown", + "tags": [], + "label": "root", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_containers/interfaces/tracks_overlays.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.useExpandedPanelId", + "type": "Function", + "tags": [], + "label": "useExpandedPanelId", + "description": [ + "\nGets this API's expanded panel state as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.CanExpandPanels", + "text": "CanExpandPanels" + }, + "> | undefined) => string | undefined" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.useExpandedPanelId.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.CanExpandPanels", + "text": "CanExpandPanels" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.CanDuplicatePanels", + "type": "Interface", + "tags": [], + "label": "CanDuplicatePanels", + "description": [], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.CanDuplicatePanels.duplicatePanel", + "type": "Function", + "tags": [], + "label": "duplicatePanel", + "description": [], + "signature": [ + "(panelId: string) => void" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.CanDuplicatePanels.duplicatePanel.$1", + "type": "string", + "tags": [], + "label": "panelId", + "description": [], + "signature": [ + "string" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.CanExpandPanels", + "type": "Interface", + "tags": [], + "label": "CanExpandPanels", + "description": [], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.CanExpandPanels.expandPanel", + "type": "Function", + "tags": [], + "label": "expandPanel", + "description": [], + "signature": [ + "(panelId?: string | undefined) => void" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.CanExpandPanels.expandPanel.$1", + "type": "string", + "tags": [], + "label": "panelId", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.CanExpandPanels.expandedPanelId", + "type": "Object", + "tags": [], + "label": "expandedPanelId", + "description": [], + "signature": [ + "{ readonly value: string | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: string | undefined) => void): Promise; (next: (value: string | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => string | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: string | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: string | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_containers/interfaces/panel_management.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PanelPackage", + "type": "Interface", + "tags": [], + "label": "PanelPackage", + "description": [], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PanelPackage.panelType", + "type": "string", + "tags": [], + "label": "panelType", + "description": [], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PanelPackage.initialState", + "type": "Unknown", + "tags": [], + "label": "initialState", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PresentationContainer", + "type": "Interface", + "tags": [], + "label": "PresentationContainer", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + }, + " extends Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PresentationContainer.removePanel", + "type": "Function", + "tags": [], + "label": "removePanel", + "description": [], + "signature": [ + "(panelId: string) => void" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PresentationContainer.removePanel.$1", + "type": "string", + "tags": [], + "label": "panelId", + "description": [], + "signature": [ + "string" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PresentationContainer.canRemovePanels", + "type": "Function", + "tags": [], + "label": "canRemovePanels", + "description": [], + "signature": [ + "(() => boolean) | undefined" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PresentationContainer.replacePanel", + "type": "Function", + "tags": [], + "label": "replacePanel", + "description": [], + "signature": [ + "(idToRemove: string, newPanel: ", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PanelPackage", + "text": "PanelPackage" + }, + ") => Promise" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PresentationContainer.replacePanel.$1", + "type": "string", + "tags": [], + "label": "idToRemove", + "description": [], + "signature": [ + "string" + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.PresentationContainer.replacePanel.$2", + "type": "Object", + "tags": [], + "label": "newPanel", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PanelPackage", + "text": "PanelPackage" + } + ], + "path": "packages/presentation/presentation_containers/interfaces/presentation_container.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.TracksOverlays", + "type": "Interface", + "tags": [], + "label": "TracksOverlays", + "description": [], + "path": "packages/presentation/presentation_containers/interfaces/tracks_overlays.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.TracksOverlays.openOverlay", + "type": "Function", + "tags": [], + "label": "openOverlay", + "description": [], + "signature": [ + "(ref: ", + { + "pluginId": "@kbn/core-mount-utils-browser", + "scope": "common", + "docId": "kibKbnCoreMountUtilsBrowserPluginApi", + "section": "def-common.OverlayRef", + "text": "OverlayRef" + }, + ", options?: TracksOverlaysOptions | undefined) => void" + ], + "path": "packages/presentation/presentation_containers/interfaces/tracks_overlays.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.TracksOverlays.openOverlay.$1", + "type": "Object", + "tags": [], + "label": "ref", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-mount-utils-browser", + "scope": "common", + "docId": "kibKbnCoreMountUtilsBrowserPluginApi", + "section": "def-common.OverlayRef", + "text": "OverlayRef" + } + ], + "path": "packages/presentation/presentation_containers/interfaces/tracks_overlays.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.TracksOverlays.openOverlay.$2", + "type": "Object", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "TracksOverlaysOptions | undefined" + ], + "path": "packages/presentation/presentation_containers/interfaces/tracks_overlays.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-containers", + "id": "def-common.TracksOverlays.clearOverlays", + "type": "Function", + "tags": [], + "label": "clearOverlays", + "description": [], + "signature": [ + "() => void" + ], + "path": "packages/presentation/presentation_containers/interfaces/tracks_overlays.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_presentation_containers.mdx b/api_docs/kbn_presentation_containers.mdx new file mode 100644 index 0000000000000..601d04367e4af --- /dev/null +++ b/api_docs/kbn_presentation_containers.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: kibKbnPresentationContainersPluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-containers'] +--- +import kbnPresentationContainersObj from './kbn_presentation_containers.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 | +|-------------------|-----------|------------------------|-----------------| +| 34 | 0 | 33 | 0 | + +## Common + +### Functions + + +### Interfaces + + diff --git a/api_docs/kbn_presentation_library.devdocs.json b/api_docs/kbn_presentation_library.devdocs.json new file mode 100644 index 0000000000000..1de4d5190196f --- /dev/null +++ b/api_docs/kbn_presentation_library.devdocs.json @@ -0,0 +1,201 @@ +{ + "id": "@kbn/presentation-library", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.apiCanLinkToLibrary", + "type": "Function", + "tags": [], + "label": "apiCanLinkToLibrary", + "description": [], + "signature": [ + "(api: unknown) => api is ", + { + "pluginId": "@kbn/presentation-library", + "scope": "common", + "docId": "kibKbnPresentationLibraryPluginApi", + "section": "def-common.CanLinkToLibrary", + "text": "CanLinkToLibrary" + } + ], + "path": "packages/presentation/presentation_library/interfaces/can_link_to_library.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.apiCanLinkToLibrary.$1", + "type": "Unknown", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_library/interfaces/can_link_to_library.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.apiCanUnlinkFromLibrary", + "type": "Function", + "tags": [], + "label": "apiCanUnlinkFromLibrary", + "description": [], + "signature": [ + "(api: unknown) => api is ", + { + "pluginId": "@kbn/presentation-library", + "scope": "common", + "docId": "kibKbnPresentationLibraryPluginApi", + "section": "def-common.CanUnlinkFromLibrary", + "text": "CanUnlinkFromLibrary" + } + ], + "path": "packages/presentation/presentation_library/interfaces/can_unlink_from_library.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.apiCanUnlinkFromLibrary.$1", + "type": "Unknown", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_library/interfaces/can_unlink_from_library.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.CanLinkToLibrary", + "type": "Interface", + "tags": [], + "label": "CanLinkToLibrary", + "description": [], + "path": "packages/presentation/presentation_library/interfaces/can_link_to_library.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.CanLinkToLibrary.canLinkToLibrary", + "type": "Function", + "tags": [], + "label": "canLinkToLibrary", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/presentation/presentation_library/interfaces/can_link_to_library.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.CanLinkToLibrary.linkToLibrary", + "type": "Function", + "tags": [], + "label": "linkToLibrary", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/presentation/presentation_library/interfaces/can_link_to_library.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.CanUnlinkFromLibrary", + "type": "Interface", + "tags": [], + "label": "CanUnlinkFromLibrary", + "description": [], + "path": "packages/presentation/presentation_library/interfaces/can_unlink_from_library.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.CanUnlinkFromLibrary.canUnlinkFromLibrary", + "type": "Function", + "tags": [], + "label": "canUnlinkFromLibrary", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/presentation/presentation_library/interfaces/can_unlink_from_library.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-library", + "id": "def-common.CanUnlinkFromLibrary.unlinkFromLibrary", + "type": "Function", + "tags": [], + "label": "unlinkFromLibrary", + "description": [], + "signature": [ + "() => Promise" + ], + "path": "packages/presentation/presentation_library/interfaces/can_unlink_from_library.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_presentation_library.mdx b/api_docs/kbn_presentation_library.mdx new file mode 100644 index 0000000000000..903ab657c4a9a --- /dev/null +++ b/api_docs/kbn_presentation_library.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: kibKbnPresentationLibraryPluginApi +slug: /kibana-dev-docs/api/kbn-presentation-library +title: "@kbn/presentation-library" +image: https://source.unsplash.com/400x175/?github +description: API docs for the @kbn/presentation-library plugin +date: 2024-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-library'] +--- +import kbnPresentationLibraryObj from './kbn_presentation_library.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 | +|-------------------|-----------|------------------------|-----------------| +| 10 | 0 | 10 | 0 | + +## Common + +### Functions + + +### Interfaces + + diff --git a/api_docs/kbn_presentation_publishing.devdocs.json b/api_docs/kbn_presentation_publishing.devdocs.json new file mode 100644 index 0000000000000..7466892d41fbd --- /dev/null +++ b/api_docs/kbn_presentation_publishing.devdocs.json @@ -0,0 +1,6431 @@ +{ + "id": "@kbn/presentation-publishing", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiCanAccessViewMode", + "type": "Function", + "tags": [], + "label": "apiCanAccessViewMode", + "description": [ + "\nA type guard which can be used to determine if a given API has access to a view mode, its own or from its parent." + ], + "signature": [ + "(api: unknown) => api is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.CanAccessViewMode", + "text": "CanAccessViewMode" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiCanAccessViewMode.$1", + "type": "Unknown", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiHasParentApi", + "type": "Function", + "tags": [], + "label": "apiHasParentApi", + "description": [ + "\nA type guard which checks whether or not a given API has a parent API." + ], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasParentApi", + "text": "HasParentApi" + }, + "" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_parent_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiHasParentApi.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_parent_api.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiHasType", + "type": "Function", + "tags": [], + "label": "apiHasType", + "description": [], + "signature": [ + "(api: unknown) => api is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasType", + "text": "HasType" + }, + "" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiHasType.$1", + "type": "Unknown", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiHasUniqueId", + "type": "Function", + "tags": [], + "label": "apiHasUniqueId", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasUniqueId", + "text": "HasUniqueId" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_uuid.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiHasUniqueId.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_uuid.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiIsOfType", + "type": "Function", + "tags": [], + "label": "apiIsOfType", + "description": [], + "signature": [ + "(api: unknown, typeToCheck: string) => api is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasType", + "text": "HasType" + }, + "" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiIsOfType.$1", + "type": "Unknown", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiIsOfType.$2", + "type": "string", + "tags": [], + "label": "typeToCheck", + "description": [], + "signature": [ + "string" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesBlockingError", + "type": "Function", + "tags": [], + "label": "apiPublishesBlockingError", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesBlockingError", + "text": "PublishesBlockingError" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesBlockingError.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesDataLoading", + "type": "Function", + "tags": [], + "label": "apiPublishesDataLoading", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataLoading", + "text": "PublishesDataLoading" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesDataLoading.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesDataViews", + "type": "Function", + "tags": [], + "label": "apiPublishesDataViews", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataViews", + "text": "PublishesDataViews" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesDataViews.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesDisabledActionIds", + "type": "Function", + "tags": [], + "label": "apiPublishesDisabledActionIds", + "description": [ + "\nA type guard which checks whether or not a given API publishes Disabled Action IDs. This can be used\nto programatically limit which actions are available on a per-API basis." + ], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDisabledActionIds", + "text": "PublishesDisabledActionIds" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesDisabledActionIds.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesLocalUnifiedSearch", + "type": "Function", + "tags": [], + "label": "apiPublishesLocalUnifiedSearch", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesLocalUnifiedSearch.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPanelDescription", + "type": "Function", + "tags": [], + "label": "apiPublishesPanelDescription", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPanelDescription.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPanelTitle", + "type": "Function", + "tags": [], + "label": "apiPublishesPanelTitle", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPanelTitle.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPartialLocalUnifiedSearch", + "type": "Function", + "tags": [], + "label": "apiPublishesPartialLocalUnifiedSearch", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + }, + ">" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPartialLocalUnifiedSearch.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPhaseEvents", + "type": "Function", + "tags": [], + "label": "apiPublishesPhaseEvents", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPhaseEvents", + "text": "PublishesPhaseEvents" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesPhaseEvents.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesSavedObjectId", + "type": "Function", + "tags": [], + "label": "apiPublishesSavedObjectId", + "description": [ + "\nA type guard which can be used to determine if a given API publishes a saved object id." + ], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesSavedObjectId", + "text": "PublishesSavedObjectId" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesSavedObjectId.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesViewMode", + "type": "Function", + "tags": [], + "label": "apiPublishesViewMode", + "description": [ + "\nA type guard which can be used to determine if a given API publishes a view mode." + ], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesViewMode.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesWritableLocalUnifiedSearch", + "type": "Function", + "tags": [], + "label": "apiPublishesWritableLocalUnifiedSearch", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesWritableLocalUnifiedSearch", + "text": "PublishesWritableLocalUnifiedSearch" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesWritableLocalUnifiedSearch.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesWritablePanelDescription", + "type": "Function", + "tags": [], + "label": "apiPublishesWritablePanelDescription", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesWritablePanelDescription", + "text": "PublishesWritablePanelDescription" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesWritablePanelDescription.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesWritablePanelTitle", + "type": "Function", + "tags": [], + "label": "apiPublishesWritablePanelTitle", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesWritablePanelTitle", + "text": "PublishesWritablePanelTitle" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesWritablePanelTitle.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesWritableViewMode", + "type": "Function", + "tags": [], + "label": "apiPublishesWritableViewMode", + "description": [], + "signature": [ + "(unknownApi: unknown) => unknownApi is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesWritableViewMode", + "text": "PublishesWritableViewMode" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.apiPublishesWritableViewMode.$1", + "type": "Unknown", + "tags": [], + "label": "unknownApi", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.getInheritedViewMode", + "type": "Function", + "tags": [], + "label": "getInheritedViewMode", + "description": [ + "\nA function which will get the view mode from the API or the parent API. if this api has a view mode AND its\nparent has a view mode, we consider the APIs version the source of truth." + ], + "signature": [ + "(api?: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.CanAccessViewMode", + "text": "CanAccessViewMode" + }, + " | undefined) => ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.getInheritedViewMode.$1", + "type": "CompoundType", + "tags": [], + "label": "api", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.CanAccessViewMode", + "text": "CanAccessViewMode" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.getViewModeSubject", + "type": "Function", + "tags": [], + "label": "getViewModeSubject", + "description": [], + "signature": [ + "(api?: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.CanAccessViewMode", + "text": "CanAccessViewMode" + }, + " | undefined) => ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.getViewModeSubject.$1", + "type": "CompoundType", + "tags": [], + "label": "api", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.CanAccessViewMode", + "text": "CanAccessViewMode" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.hasEditCapabilities", + "type": "Function", + "tags": [], + "label": "hasEditCapabilities", + "description": [ + "\nA type guard which determines whether or not a given API is editable." + ], + "signature": [ + "(root: unknown) => root is ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasEditCapabilities", + "text": "HasEditCapabilities" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.hasEditCapabilities.$1", + "type": "Unknown", + "tags": [], + "label": "root", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useBatchedPublishingSubjects", + "type": "Function", + "tags": [], + "label": "useBatchedPublishingSubjects", + "description": [ + "\nBatches the latest values of multiple publishing subjects into a single object. Use this to avoid unnecessary re-renders.\nYou should avoid using this hook with subjects that your component pushes values to on user interaction, as it can cause a slight delay." + ], + "signature": [ + "(subjects: SubjectsType) => PublishingSubjectBatchResult" + ], + "path": "packages/presentation/presentation_publishing/publishing_subject/publishing_batcher.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useBatchedPublishingSubjects.$1", + "type": "Uncategorized", + "tags": [], + "label": "subjects", + "description": [], + "signature": [ + "SubjectsType" + ], + "path": "packages/presentation/presentation_publishing/publishing_subject/publishing_batcher.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useBlockingError", + "type": "Function", + "tags": [], + "label": "useBlockingError", + "description": [ + "\nGets this API's fatal error as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesBlockingError", + "text": "PublishesBlockingError" + }, + "> | undefined) => Error | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useBlockingError.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesBlockingError", + "text": "PublishesBlockingError" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDataLoading", + "type": "Function", + "tags": [], + "label": "useDataLoading", + "description": [ + "\nGets this API's data loading state as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataLoading", + "text": "PublishesDataLoading" + }, + "> | undefined) => boolean | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDataLoading.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataLoading", + "text": "PublishesDataLoading" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDataViews", + "type": "Function", + "tags": [], + "label": "useDataViews", + "description": [ + "\nGets this API's data views as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataViews", + "text": "PublishesDataViews" + }, + "> | undefined) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDataViews.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataViews", + "text": "PublishesDataViews" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDefaultPanelDescription", + "type": "Function", + "tags": [], + "label": "useDefaultPanelDescription", + "description": [ + "\nA hook that gets this API's default panel description as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + }, + "> | undefined) => string | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDefaultPanelDescription.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDefaultPanelTitle", + "type": "Function", + "tags": [], + "label": "useDefaultPanelTitle", + "description": [ + "\nA hook that gets this API's default title as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + "> | undefined) => string | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDefaultPanelTitle.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDisabledActionIds", + "type": "Function", + "tags": [], + "label": "useDisabledActionIds", + "description": [ + "\nGets this API's disabled action IDs as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDisabledActionIds", + "text": "PublishesDisabledActionIds" + }, + "> | undefined) => string[] | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useDisabledActionIds.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDisabledActionIds", + "text": "PublishesDisabledActionIds" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useHidePanelTitle", + "type": "Function", + "tags": [], + "label": "useHidePanelTitle", + "description": [ + "\nA hook that gets this API's hide panel title setting as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + "> | undefined) => boolean | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useHidePanelTitle.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useInheritedViewMode", + "type": "Function", + "tags": [], + "label": "useInheritedViewMode", + "description": [ + "\nA hook that gets a view mode from this API or its parent as a reactive variable which will cause re-renders on change.\nif this api has a view mode AND its parent has a view mode, we consider the APIs version the source of truth." + ], + "signature": [ + "(api: ApiType | undefined) => void" + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useInheritedViewMode.$1", + "type": "Uncategorized", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "ApiType | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useLocalFilters", + "type": "Function", + "tags": [], + "label": "useLocalFilters", + "description": [ + "\nA hook that gets this API's local filters as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + }, + "> | undefined) => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useLocalFilters.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useLocalQuery", + "type": "Function", + "tags": [], + "label": "useLocalQuery", + "description": [ + "\nA hook that gets this API's local query as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + }, + "> | undefined) => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useLocalQuery.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useLocalTimeRange", + "type": "Function", + "tags": [], + "label": "useLocalTimeRange", + "description": [ + "\nA hook that gets this API's local time range as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + }, + "> | undefined) => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useLocalTimeRange.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.usePanelDescription", + "type": "Function", + "tags": [], + "label": "usePanelDescription", + "description": [ + "\nA hook that gets this API's panel description as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + }, + "> | undefined) => string | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.usePanelDescription.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.usePanelTitle", + "type": "Function", + "tags": [], + "label": "usePanelTitle", + "description": [ + "\nA hook that gets this API's panel title as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + "> | undefined) => string | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.usePanelTitle.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + "> | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.usePublishingSubject", + "type": "Function", + "tags": [], + "label": "usePublishingSubject", + "description": [ + "\nDeclares a publishing subject, allowing external code to subscribe to react state changes.\nChanges to state fire subject.next" + ], + "signature": [ + "(state: T) => ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "" + ], + "path": "packages/presentation/presentation_publishing/publishing_subject/publishing_subject.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.usePublishingSubject.$1", + "type": "Uncategorized", + "tags": [], + "label": "state", + "description": [ + "React state from useState hook." + ], + "signature": [ + "T" + ], + "path": "packages/presentation/presentation_publishing/publishing_subject/publishing_subject.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useSavedObjectId", + "type": "Function", + "tags": [], + "label": "useSavedObjectId", + "description": [ + "\nA hook that gets this API's saved object ID as a reactive variable which will cause re-renders on change." + ], + "signature": [ + "(api: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesSavedObjectId", + "text": "PublishesSavedObjectId" + }, + " | undefined) => string | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useSavedObjectId.$1", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesSavedObjectId", + "text": "PublishesSavedObjectId" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useStateFromPublishingSubject", + "type": "Function", + "tags": [], + "label": "useStateFromPublishingSubject", + "description": [ + "\nDeclares a state variable that is synced with a publishing subject value." + ], + "signature": [ + " | undefined = ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + " | undefined>(subject?: SubjectType | undefined) => OptionalIfOptional" + ], + "path": "packages/presentation/presentation_publishing/publishing_subject/publishing_subject.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useStateFromPublishingSubject.$1", + "type": "Uncategorized", + "tags": [], + "label": "subject", + "description": [ + "Publishing subject." + ], + "signature": [ + "SubjectType | undefined" + ], + "path": "packages/presentation/presentation_publishing/publishing_subject/publishing_subject.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useViewMode", + "type": "Function", + "tags": [], + "label": "useViewMode", + "description": [ + "\nA hook that gets this API's view mode as a reactive variable which will cause re-renders on change." + ], + "signature": [ + " = Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">>(api: ApiType | undefined) => OptionalIfOptional" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.useViewMode.$1", + "type": "Uncategorized", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "ApiType | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.EmbeddableApiContext", + "type": "Interface", + "tags": [], + "label": "EmbeddableApiContext", + "description": [], + "path": "packages/presentation/presentation_publishing/index.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.EmbeddableApiContext.embeddable", + "type": "Unknown", + "tags": [], + "label": "embeddable", + "description": [], + "signature": [ + "unknown" + ], + "path": "packages/presentation/presentation_publishing/index.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasEditCapabilities", + "type": "Interface", + "tags": [], + "label": "HasEditCapabilities", + "description": [ + "\nAn interface which determines whether or not a given API is editable.\nIn order to be editable, the api requires an edit function to execute the action\na getTypeDisplayName function to display to the user which type of chart is being\nedited, and an isEditingEnabled function." + ], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasEditCapabilities", + "text": "HasEditCapabilities" + }, + " extends ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasTypeDisplayName", + "text": "HasTypeDisplayName" + } + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasEditCapabilities.onEdit", + "type": "Function", + "tags": [], + "label": "onEdit", + "description": [], + "signature": [ + "() => void" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasEditCapabilities.isEditingEnabled", + "type": "Function", + "tags": [], + "label": "isEditingEnabled", + "description": [], + "signature": [ + "() => boolean" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasEditCapabilities.getEditHref", + "type": "Function", + "tags": [], + "label": "getEditHref", + "description": [], + "signature": [ + "(() => string | undefined) | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasParentApi", + "type": "Interface", + "tags": [], + "label": "HasParentApi", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasParentApi", + "text": "HasParentApi" + }, + "" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_parent_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasParentApi.parentApi", + "type": "Uncategorized", + "tags": [], + "label": "parentApi", + "description": [], + "signature": [ + "ParentApiType" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_parent_api.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasType", + "type": "Interface", + "tags": [], + "label": "HasType", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasType", + "text": "HasType" + }, + "" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasType.type", + "type": "Uncategorized", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "T" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasTypeDisplayName", + "type": "Interface", + "tags": [], + "label": "HasTypeDisplayName", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasTypeDisplayName.getTypeDisplayName", + "type": "Function", + "tags": [], + "label": "getTypeDisplayName", + "description": [], + "signature": [ + "() => string" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasTypeDisplayName.getTypeDisplayNameLowerCase", + "type": "Function", + "tags": [], + "label": "getTypeDisplayNameLowerCase", + "description": [], + "signature": [ + "(() => string) | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/has_type.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasUniqueId", + "type": "Interface", + "tags": [], + "label": "HasUniqueId", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/has_uuid.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.HasUniqueId.uuid", + "type": "string", + "tags": [], + "label": "uuid", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/has_uuid.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PhaseEvent", + "type": "Interface", + "tags": [], + "label": "PhaseEvent", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PhaseEvent.id", + "type": "string", + "tags": [], + "label": "id", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PhaseEvent.status", + "type": "CompoundType", + "tags": [], + "label": "status", + "description": [], + "signature": [ + "\"error\" | \"loading\" | \"rendered\" | \"loaded\"" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PhaseEvent.error", + "type": "CompoundType", + "tags": [], + "label": "error", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ErrorLike", + "text": "ErrorLike" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PhaseEvent.timeToEvent", + "type": "number", + "tags": [], + "label": "timeToEvent", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesBlockingError", + "type": "Interface", + "tags": [], + "label": "PublishesBlockingError", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesBlockingError.blockingError", + "type": "Object", + "tags": [], + "label": "blockingError", + "description": [], + "signature": [ + "{ readonly value: Error | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: Error | undefined) => void): Promise; (next: (value: Error | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => Error | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: Error | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: Error | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesDataLoading", + "type": "Interface", + "tags": [], + "label": "PublishesDataLoading", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesDataLoading.dataLoading", + "type": "Object", + "tags": [], + "label": "dataLoading", + "description": [], + "signature": [ + "{ readonly value: boolean | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: boolean | undefined) => void): Promise; (next: (value: boolean | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => boolean | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: boolean | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: boolean | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesDataViews", + "type": "Interface", + "tags": [], + "label": "PublishesDataViews", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesDataViews.dataViews", + "type": "Object", + "tags": [], + "label": "dataViews", + "description": [], + "signature": [ + "{ readonly value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>> | ((value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesDisabledActionIds", + "type": "Interface", + "tags": [], + "label": "PublishesDisabledActionIds", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesDisabledActionIds.disabledActionIds", + "type": "Object", + "tags": [], + "label": "disabledActionIds", + "description": [], + "signature": [ + "{ readonly value: string[] | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: string[] | undefined) => void): Promise; (next: (value: string[] | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => string[] | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: string[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: string[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesDisabledActionIds.getAllTriggersDisabled", + "type": "Function", + "tags": [], + "label": "getAllTriggersDisabled", + "description": [], + "signature": [ + "(() => boolean) | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesLocalUnifiedSearch", + "type": "Interface", + "tags": [], + "label": "PublishesLocalUnifiedSearch", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesLocalUnifiedSearch.isCompatibleWithLocalUnifiedSearch", + "type": "Function", + "tags": [], + "label": "isCompatibleWithLocalUnifiedSearch", + "description": [], + "signature": [ + "(() => boolean) | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesLocalUnifiedSearch.localTimeRange", + "type": "Object", + "tags": [], + "label": "localTimeRange", + "description": [], + "signature": [ + "{ readonly value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>> | ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesLocalUnifiedSearch.getFallbackTimeRange", + "type": "Function", + "tags": [], + "label": "getFallbackTimeRange", + "description": [], + "signature": [ + "(() => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesLocalUnifiedSearch.localFilters", + "type": "Object", + "tags": [], + "label": "localFilters", + "description": [], + "signature": [ + "{ readonly value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>> | ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesLocalUnifiedSearch.localQuery", + "type": "Object", + "tags": [], + "label": "localQuery", + "description": [], + "signature": [ + "{ readonly value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>> | ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPanelDescription", + "type": "Interface", + "tags": [], + "label": "PublishesPanelDescription", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPanelDescription.panelDescription", + "type": "Object", + "tags": [], + "label": "panelDescription", + "description": [], + "signature": [ + "{ readonly value: string | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: string | undefined) => void): Promise; (next: (value: string | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => string | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: string | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: string | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPanelDescription.defaultPanelDescription", + "type": "Object", + "tags": [], + "label": "defaultPanelDescription", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPanelTitle", + "type": "Interface", + "tags": [], + "label": "PublishesPanelTitle", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPanelTitle.panelTitle", + "type": "Object", + "tags": [], + "label": "panelTitle", + "description": [], + "signature": [ + "{ readonly value: string | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: string | undefined) => void): Promise; (next: (value: string | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => string | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: string | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: string | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPanelTitle.hidePanelTitle", + "type": "Object", + "tags": [], + "label": "hidePanelTitle", + "description": [], + "signature": [ + "{ readonly value: boolean | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: boolean | undefined) => void): Promise; (next: (value: boolean | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => boolean | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: boolean | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: boolean | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPanelTitle.defaultPanelTitle", + "type": "Object", + "tags": [], + "label": "defaultPanelTitle", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + " | undefined" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPhaseEvents", + "type": "Interface", + "tags": [], + "label": "PublishesPhaseEvents", + "description": [], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesPhaseEvents.onPhaseChange", + "type": "Object", + "tags": [], + "label": "onPhaseChange", + "description": [], + "signature": [ + "{ readonly value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined, R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>> | ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesSavedObjectId", + "type": "Interface", + "tags": [], + "label": "PublishesSavedObjectId", + "description": [ + "\nThis API publishes a saved object id which can be used to determine which saved object this API is linked to." + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesSavedObjectId.savedObjectId", + "type": "Object", + "tags": [], + "label": "savedObjectId", + "description": [], + "signature": [ + "{ readonly value: string | undefined; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: string | undefined) => void): Promise; (next: (value: string | undefined) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => string | undefined; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: string | undefined) => void) | undefined): ", + "Subscription", + "; (next?: ((value: string | undefined) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesViewMode", + "type": "Interface", + "tags": [], + "label": "PublishesViewMode", + "description": [ + "\nThis API publishes a universal view mode which can change compatibility of actions and the\nvisibility of components." + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesViewMode.viewMode", + "type": "Object", + "tags": [], + "label": "viewMode", + "description": [], + "signature": [ + "{ readonly value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + "; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void): Promise; (next: (value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + "; pipe: { (): ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", A>, op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ", R>) => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">> | ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void) | undefined): ", + "Subscription", + "; (next?: ((value: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + " | undefined>; (PromiseCtor: PromiseConstructor): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + " | undefined>; (PromiseCtor: PromiseConstructorLike): Promise<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + " | undefined>; }; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + } + ], + "enums": [], + "misc": [ + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.CanAccessViewMode", + "type": "Type", + "tags": [], + "label": "CanAccessViewMode", + "description": [ + "\nThis API can access a view mode, either its own or from its parent API." + ], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + "> | Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasParentApi", + "text": "HasParentApi" + }, + ">>" + ], + "path": "packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PhaseEventType", + "type": "Type", + "tags": [], + "label": "PhaseEventType", + "description": [ + "------------------------------------------------------------------------------------------\nPerformance Tracking Types\n------------------------------------------------------------------------------------------" + ], + "signature": [ + "\"error\" | \"loading\" | \"rendered\" | \"loaded\"" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesWritableLocalUnifiedSearch", + "type": "Type", + "tags": [], + "label": "PublishesWritableLocalUnifiedSearch", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesLocalUnifiedSearch", + "text": "PublishesLocalUnifiedSearch" + }, + " & { setLocalTimeRange: (timeRange: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void; setLocalFilters: (filters: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined) => void; setLocalQuery: (query: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | undefined) => void; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesWritablePanelDescription", + "type": "Type", + "tags": [], + "label": "PublishesWritablePanelDescription", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + }, + " & { setPanelDescription: (newTitle: string | undefined) => void; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesWritablePanelTitle", + "type": "Type", + "tags": [], + "label": "PublishesWritablePanelTitle", + "description": [], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + " & { setPanelTitle: (newTitle: string | undefined) => void; setHidePanelTitle: (hide: boolean | undefined) => void; setDefaultPanelTitle?: ((newDefaultTitle: string | undefined) => void) | undefined; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishesWritableViewMode", + "type": "Type", + "tags": [], + "label": "PublishesWritableViewMode", + "description": [ + "\nThis API publishes a writable universal view mode which can change compatibility of actions and the\nvisibility of components." + ], + "signature": [ + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + " & { setViewMode: (viewMode: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ") => void; }" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.PublishingSubject", + "type": "Type", + "tags": [], + "label": "PublishingSubject", + "description": [ + "\nA publishing subject is a RxJS subject that can be used to listen to value changes, but does not allow pushing values via the Next method." + ], + "signature": [ + "{ readonly value: T; source: ", + "Observable", + " | undefined; error: (err: any) => void; forEach: { (next: (value: T) => void): Promise; (next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise; }; getValue: () => T; pipe: { (): ", + "Observable", + "; (op1: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + "): ", + "Observable", + "; (op1: ", + "OperatorFunction", + ", op2: ", + "OperatorFunction", + ", op3: ", + "OperatorFunction", + ", op4: ", + "OperatorFunction", + ", op5: ", + "OperatorFunction", + ", op6: ", + "OperatorFunction", + ", op7: ", + "OperatorFunction", + ", op8: ", + "OperatorFunction", + ", op9: ", + "OperatorFunction", + ", ...operations: ", + "OperatorFunction", + "[]): ", + "Observable", + "; }; complete: () => void; closed: boolean; observers: ", + "Observer", + "[]; isStopped: boolean; hasError: boolean; thrownError: any; lift: (operator: ", + "Operator", + ") => ", + "Observable", + "; unsubscribe: () => void; readonly observed: boolean; asObservable: () => ", + "Observable", + "; operator: ", + "Operator", + " | undefined; subscribe: { (observerOrNext?: Partial<", + "Observer", + "> | ((value: T) => void) | undefined): ", + "Subscription", + "; (next?: ((value: T) => void) | null | undefined, error?: ((error: any) => void) | null | undefined, complete?: (() => void) | null | undefined): ", + "Subscription", + "; }; toPromise: { (): Promise; (PromiseCtor: PromiseConstructor): Promise; (PromiseCtor: PromiseConstructorLike): Promise; }; }" + ], + "path": "packages/presentation/presentation_publishing/publishing_subject/publishing_subject.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/presentation-publishing", + "id": "def-common.ViewMode", + "type": "Type", + "tags": [], + "label": "ViewMode", + "description": [], + "signature": [ + "\"view\" | \"edit\" | \"print\" | \"preview\"" + ], + "path": "packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/kbn_presentation_publishing.mdx b/api_docs/kbn_presentation_publishing.mdx new file mode 100644 index 0000000000000..f96316a201567 --- /dev/null +++ b/api_docs/kbn_presentation_publishing.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: kibKbnPresentationPublishingPluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/presentation-publishing'] +--- +import kbnPresentationPublishingObj from './kbn_presentation_publishing.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 | +|-------------------|-----------|------------------------|-----------------| +| 139 | 0 | 105 | 0 | + +## Common + +### Functions + + +### Interfaces + + +### Consts, variables and types + + diff --git a/api_docs/kbn_profiling_utils.devdocs.json b/api_docs/kbn_profiling_utils.devdocs.json index 6026ec7c4382e..198959bc3b48b 100644 --- a/api_docs/kbn_profiling_utils.devdocs.json +++ b/api_docs/kbn_profiling_utils.devdocs.json @@ -1871,19 +1871,6 @@ "deprecated": false, "trackAdoption": false }, - { - "parentPluginId": "@kbn/profiling-utils", - "id": "def-common.StackFrameMetadata.SourceID", - "type": "string", - "tags": [], - "label": "SourceID", - "description": [ - "should this be StackFrame.SourceID?" - ], - "path": "packages/kbn-profiling-utils/common/profiling.ts", - "deprecated": false, - "trackAdoption": false - }, { "parentPluginId": "@kbn/profiling-utils", "id": "def-common.StackFrameMetadata.SourceFilename", @@ -1910,19 +1897,6 @@ "deprecated": false, "trackAdoption": false }, - { - "parentPluginId": "@kbn/profiling-utils", - "id": "def-common.StackFrameMetadata.FunctionSourceLine", - "type": "number", - "tags": [], - "label": "FunctionSourceLine", - "description": [ - "auto-generated - see createStackFrameMetadata" - ], - "path": "packages/kbn-profiling-utils/common/profiling.ts", - "deprecated": false, - "trackAdoption": false - }, { "parentPluginId": "@kbn/profiling-utils", "id": "def-common.StackFrameMetadata.ExeFileName", @@ -1935,71 +1909,6 @@ "path": "packages/kbn-profiling-utils/common/profiling.ts", "deprecated": false, "trackAdoption": false - }, - { - "parentPluginId": "@kbn/profiling-utils", - "id": "def-common.StackFrameMetadata.CommitHash", - "type": "string", - "tags": [], - "label": "CommitHash", - "description": [ - "unused atm due to lack of symbolization metadata" - ], - "path": "packages/kbn-profiling-utils/common/profiling.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/profiling-utils", - "id": "def-common.StackFrameMetadata.SourceCodeURL", - "type": "string", - "tags": [], - "label": "SourceCodeURL", - "description": [ - "unused atm due to lack of symbolization metadata" - ], - "path": "packages/kbn-profiling-utils/common/profiling.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/profiling-utils", - "id": "def-common.StackFrameMetadata.SourcePackageHash", - "type": "string", - "tags": [], - "label": "SourcePackageHash", - "description": [ - "unused atm due to lack of symbolization metadata" - ], - "path": "packages/kbn-profiling-utils/common/profiling.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/profiling-utils", - "id": "def-common.StackFrameMetadata.SourcePackageURL", - "type": "string", - "tags": [], - "label": "SourcePackageURL", - "description": [ - "unused atm due to lack of symbolization metadata" - ], - "path": "packages/kbn-profiling-utils/common/profiling.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/profiling-utils", - "id": "def-common.StackFrameMetadata.SamplingRate", - "type": "number", - "tags": [], - "label": "SamplingRate", - "description": [ - "unused atm due to lack of symbolization metadata" - ], - "path": "packages/kbn-profiling-utils/common/profiling.ts", - "deprecated": false, - "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_profiling_utils.mdx b/api_docs/kbn_profiling_utils.mdx index 6f0b23f99b947..93e2e49b0f6bd 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/profiling-utils'] --- import kbnProfilingUtilsObj from './kbn_profiling_utils.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 | |-------------------|-----------|------------------------|-----------------| -| 163 | 0 | 45 | 0 | +| 156 | 0 | 45 | 0 | ## Common diff --git a/api_docs/kbn_random_sampling.mdx b/api_docs/kbn_random_sampling.mdx index 3f36204f291bd..4f7771e575bdc 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-01-04 +date: 2024-01-25 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 ae92727810f60..404c9a7be2315 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-field'] --- import kbnReactFieldObj from './kbn_react_field.devdocs.json'; diff --git a/api_docs/kbn_react_kibana_context_common.mdx b/api_docs/kbn_react_kibana_context_common.mdx index 752c4a1b3b5ba..ca051eb5ff304 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-01-04 +date: 2024-01-25 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 3ab51934192ba..0cba565e493df 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-01-04 +date: 2024-01-25 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 b428dd102f64e..cffed5f23b1e7 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-01-04 +date: 2024-01-25 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 ec8467440e1cc..2fd956b0eb616 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-01-04 +date: 2024-01-25 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 425336cc11126..bf94c1124242b 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-01-04 +date: 2024-01-25 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 ae9ad6538f42e..cf50c477bbccc 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/react-kibana-mount'] --- import kbnReactKibanaMountObj from './kbn_react_kibana_mount.devdocs.json'; diff --git a/api_docs/kbn_repo_file_maps.mdx b/api_docs/kbn_repo_file_maps.mdx index 934e8dc6db220..9f0f33e9a6671 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-01-04 +date: 2024-01-25 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 8452c33949f34..64905395f120f 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-01-04 +date: 2024-01-25 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 d1b4e65b919cc..aa3bd4bdd9c12 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-01-04 +date: 2024-01-25 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 544e2b0664268..0aa5a10bf463b 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-01-04 +date: 2024-01-25 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 5e307d64f309a..5b8081391c315 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-common'] --- import kbnReportingCommonObj from './kbn_reporting_common.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 | |-------------------|-----------|------------------------|-----------------| -| 80 | 0 | 72 | 7 | +| 80 | 0 | 72 | 8 | ## Common diff --git a/api_docs/kbn_reporting_export_types_csv.devdocs.json b/api_docs/kbn_reporting_export_types_csv.devdocs.json index 006a2c32b5760..7f1fdf2f95005 100644 --- a/api_docs/kbn_reporting_export_types_csv.devdocs.json +++ b/api_docs/kbn_reporting_export_types_csv.devdocs.json @@ -168,7 +168,7 @@ "section": "def-common.CoreSetup", "text": "CoreSetup" }, - ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -176,7 +176,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", { "pluginId": "@kbn/logging", "scope": "common", @@ -192,7 +192,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -200,7 +200,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" ], "path": "packages/kbn-reporting/export_types/csv/csv_searchsource.ts", "deprecated": false, @@ -290,6 +290,8 @@ "section": "def-common.TaskPayloadCSV", "text": "TaskPayloadCSV" }, + ", taskInstanceFields: ", + "TaskInstanceFields", ", cancellationToken: ", { "pluginId": "@kbn/reporting-common", @@ -349,6 +351,21 @@ "id": "def-server.CsvSearchSourceExportType.runTask.$3", "type": "Object", "tags": [], + "label": "taskInstanceFields", + "description": [], + "signature": [ + "TaskInstanceFields" + ], + "path": "packages/kbn-reporting/export_types/csv/csv_searchsource.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/reporting-export-types-csv", + "id": "def-server.CsvSearchSourceExportType.runTask.$4", + "type": "Object", + "tags": [], "label": "cancellationToken", "description": [], "signature": [ @@ -367,7 +384,7 @@ }, { "parentPluginId": "@kbn/reporting-export-types-csv", - "id": "def-server.CsvSearchSourceExportType.runTask.$4", + "id": "def-server.CsvSearchSourceExportType.runTask.$5", "type": "Object", "tags": [], "label": "stream", @@ -538,7 +555,7 @@ "section": "def-common.CoreSetup", "text": "CoreSetup" }, - ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -546,7 +563,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", { "pluginId": "@kbn/logging", "scope": "common", @@ -562,7 +579,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -570,7 +587,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" ], "path": "packages/kbn-reporting/export_types/csv/csv_searchsource_immediate.ts", "deprecated": false, @@ -886,7 +903,7 @@ "section": "def-common.CoreSetup", "text": "CoreSetup" }, - ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -894,7 +911,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", { "pluginId": "@kbn/logging", "scope": "common", @@ -910,7 +927,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -918,7 +935,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" ], "path": "packages/kbn-reporting/export_types/csv/csv_v2.ts", "deprecated": false, @@ -1057,6 +1074,8 @@ "section": "def-common.TaskPayloadCsvFromSavedObject", "text": "TaskPayloadCsvFromSavedObject" }, + ", taskInstanceFields: ", + "TaskInstanceFields", ", cancellationToken: ", { "pluginId": "@kbn/reporting-common", @@ -1116,6 +1135,21 @@ "id": "def-server.CsvV2ExportType.runTask.$3", "type": "Object", "tags": [], + "label": "taskInstanceFields", + "description": [], + "signature": [ + "TaskInstanceFields" + ], + "path": "packages/kbn-reporting/export_types/csv/csv_v2.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/reporting-export-types-csv", + "id": "def-server.CsvV2ExportType.runTask.$4", + "type": "Object", + "tags": [], "label": "cancellationToken", "description": [], "signature": [ @@ -1134,7 +1168,7 @@ }, { "parentPluginId": "@kbn/reporting-export-types-csv", - "id": "def-server.CsvV2ExportType.runTask.$4", + "id": "def-server.CsvV2ExportType.runTask.$5", "type": "Object", "tags": [], "label": "stream", diff --git a/api_docs/kbn_reporting_export_types_csv.mdx b/api_docs/kbn_reporting_export_types_csv.mdx index cffea7d370a0f..b6949ebd3ab39 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-csv'] --- import kbnReportingExportTypesCsvObj from './kbn_reporting_export_types_csv.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 | |-------------------|-----------|------------------------|-----------------| -| 50 | 0 | 50 | 3 | +| 52 | 0 | 52 | 3 | ## Server diff --git a/api_docs/kbn_reporting_export_types_csv_common.mdx b/api_docs/kbn_reporting_export_types_csv_common.mdx index 3c031d6311cba..17b2f8ae16ab6 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_reporting_export_types_pdf.devdocs.json index 5a7a0d2414a5a..4275c87659457 100644 --- a/api_docs/kbn_reporting_export_types_pdf.devdocs.json +++ b/api_docs/kbn_reporting_export_types_pdf.devdocs.json @@ -176,7 +176,7 @@ "section": "def-common.CoreSetup", "text": "CoreSetup" }, - ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -184,7 +184,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", { "pluginId": "@kbn/logging", "scope": "common", @@ -200,7 +200,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -208,7 +208,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" ], "path": "packages/kbn-reporting/export_types/pdf/printable_pdf_v2.ts", "deprecated": false, @@ -304,6 +304,8 @@ "section": "def-common.TaskPayloadPDFV2", "text": "TaskPayloadPDFV2" }, + ", taskInstanceFields: ", + "TaskInstanceFields", ", cancellationToken: ", { "pluginId": "@kbn/reporting-common", @@ -363,6 +365,21 @@ "id": "def-server.PdfExportType.runTask.$3", "type": "Object", "tags": [], + "label": "taskInstanceFields", + "description": [], + "signature": [ + "TaskInstanceFields" + ], + "path": "packages/kbn-reporting/export_types/pdf/printable_pdf_v2.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/reporting-export-types-pdf", + "id": "def-server.PdfExportType.runTask.$4", + "type": "Object", + "tags": [], "label": "cancellationToken", "description": [], "signature": [ @@ -381,7 +398,7 @@ }, { "parentPluginId": "@kbn/reporting-export-types-pdf", - "id": "def-server.PdfExportType.runTask.$4", + "id": "def-server.PdfExportType.runTask.$5", "type": "Object", "tags": [], "label": "stream", @@ -578,7 +595,7 @@ "section": "def-common.CoreSetup", "text": "CoreSetup" }, - ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -586,7 +603,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", { "pluginId": "@kbn/logging", "scope": "common", @@ -602,7 +619,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -610,7 +627,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" ], "path": "packages/kbn-reporting/export_types/pdf/printable_pdf.ts", "deprecated": false, @@ -692,6 +709,8 @@ "section": "def-common.TaskPayloadPDF", "text": "TaskPayloadPDF" }, + ", taskInstanceFields: ", + "TaskInstanceFields", ", cancellationToken: ", { "pluginId": "@kbn/reporting-common", @@ -751,6 +770,21 @@ "id": "def-server.PdfV1ExportType.runTask.$3", "type": "Object", "tags": [], + "label": "taskInstanceFields", + "description": [], + "signature": [ + "TaskInstanceFields" + ], + "path": "packages/kbn-reporting/export_types/pdf/printable_pdf.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/reporting-export-types-pdf", + "id": "def-server.PdfV1ExportType.runTask.$4", + "type": "Object", + "tags": [], "label": "cancellationToken", "description": [], "signature": [ @@ -769,7 +803,7 @@ }, { "parentPluginId": "@kbn/reporting-export-types-pdf", - "id": "def-server.PdfV1ExportType.runTask.$4", + "id": "def-server.PdfV1ExportType.runTask.$5", "type": "Object", "tags": [], "label": "stream", diff --git a/api_docs/kbn_reporting_export_types_pdf.mdx b/api_docs/kbn_reporting_export_types_pdf.mdx index a55f05c20655c..df98ecfa6f28d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-pdf'] --- import kbnReportingExportTypesPdfObj from './kbn_reporting_export_types_pdf.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 | |-------------------|-----------|------------------------|-----------------| -| 32 | 0 | 31 | 0 | +| 34 | 0 | 33 | 0 | ## Server diff --git a/api_docs/kbn_reporting_export_types_pdf_common.mdx b/api_docs/kbn_reporting_export_types_pdf_common.mdx index 16068bfc850d3..18eba7bcbe482 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_reporting_export_types_png.devdocs.json index 910b4e56d3265..9eaefebb599b6 100644 --- a/api_docs/kbn_reporting_export_types_png.devdocs.json +++ b/api_docs/kbn_reporting_export_types_png.devdocs.json @@ -176,7 +176,7 @@ "section": "def-common.CoreSetup", "text": "CoreSetup" }, - ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + ", config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -184,7 +184,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, logger: ", { "pluginId": "@kbn/logging", "scope": "common", @@ -200,7 +200,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -208,7 +208,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>]" ], "path": "packages/kbn-reporting/export_types/png/png_v2.ts", "deprecated": false, @@ -306,6 +306,8 @@ "section": "def-common.TaskPayloadPNGV2", "text": "TaskPayloadPNGV2" }, + ", taskInstanceFields: ", + "TaskInstanceFields", ", cancellationToken: ", { "pluginId": "@kbn/reporting-common", @@ -365,6 +367,21 @@ "id": "def-server.PngExportType.runTask.$3", "type": "Object", "tags": [], + "label": "taskInstanceFields", + "description": [], + "signature": [ + "TaskInstanceFields" + ], + "path": "packages/kbn-reporting/export_types/png/png_v2.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/reporting-export-types-png", + "id": "def-server.PngExportType.runTask.$4", + "type": "Object", + "tags": [], "label": "cancellationToken", "description": [], "signature": [ @@ -383,7 +400,7 @@ }, { "parentPluginId": "@kbn/reporting-export-types-png", - "id": "def-server.PngExportType.runTask.$4", + "id": "def-server.PngExportType.runTask.$5", "type": "Object", "tags": [], "label": "stream", diff --git a/api_docs/kbn_reporting_export_types_png.mdx b/api_docs/kbn_reporting_export_types_png.mdx index 888ab158d8b78..9ddb289f83180 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-export-types-png'] --- import kbnReportingExportTypesPngObj from './kbn_reporting_export_types_png.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 | |-------------------|-----------|------------------------|-----------------| -| 16 | 0 | 15 | 0 | +| 17 | 0 | 16 | 0 | ## Server diff --git a/api_docs/kbn_reporting_export_types_png_common.mdx b/api_docs/kbn_reporting_export_types_png_common.mdx index edeaa5bcba34a..61df4408b7dba 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_reporting_mocks_server.devdocs.json index 55588a5151511..b1db2e710a66d 100644 --- a/api_docs/kbn_reporting_mocks_server.devdocs.json +++ b/api_docs/kbn_reporting_mocks_server.devdocs.json @@ -29,7 +29,7 @@ "signature": [ "(overrides?: ", "_DeepPartialObject", - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -37,7 +37,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>) => Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>) => Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -45,7 +45,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>" ], "path": "packages/kbn-reporting/mocks_server/index.ts", "deprecated": false, @@ -60,7 +60,7 @@ "description": [], "signature": [ "_DeepPartialObject", - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -68,7 +68,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>" ], "path": "packages/kbn-reporting/mocks_server/index.ts", "deprecated": false, diff --git a/api_docs/kbn_reporting_mocks_server.mdx b/api_docs/kbn_reporting_mocks_server.mdx index fd930185f2947..e0795b078b522 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-01-04 +date: 2024-01-25 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 efc40ca26ab59..0ecebaf022f43 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-public'] --- import kbnReportingPublicObj from './kbn_reporting_public.devdocs.json'; diff --git a/api_docs/kbn_reporting_server.devdocs.json b/api_docs/kbn_reporting_server.devdocs.json index 8cabd5e24af12..8fb78a7e011c3 100644 --- a/api_docs/kbn_reporting_server.devdocs.json +++ b/api_docs/kbn_reporting_server.devdocs.json @@ -207,7 +207,9 @@ "label": "runTask", "description": [], "signature": [ - "(jobId: string, payload: TaskPayloadType, cancellationToken: ", + "(jobId: string, payload: TaskPayloadType, taskInstanceFields: ", + "TaskInstanceFields", + ", cancellationToken: ", { "pluginId": "@kbn/reporting-common", "scope": "common", @@ -256,6 +258,20 @@ "id": "def-server.ExportType.runTask.$3", "type": "Object", "tags": [], + "label": "taskInstanceFields", + "description": [], + "signature": [ + "{ startedAt: Date | null; retryAt: Date | null; }" + ], + "path": "packages/kbn-reporting/server/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/reporting-server", + "id": "def-server.ExportType.runTask.$4", + "type": "Object", + "tags": [], "label": "cancellationToken", "description": [], "signature": [ @@ -273,7 +289,7 @@ }, { "parentPluginId": "@kbn/reporting-server", - "id": "def-server.ExportType.runTask.$4", + "id": "def-server.ExportType.runTask.$5", "type": "Object", "tags": [], "label": "stream", @@ -402,7 +418,7 @@ "label": "config", "description": [], "signature": [ - "Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -410,7 +426,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>" ], "path": "packages/kbn-reporting/server/export_type.ts", "deprecated": false, @@ -453,7 +469,7 @@ "section": "def-common.PluginInitializerContext", "text": "PluginInitializerContext" }, - "; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -461,7 +477,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>>" ], "path": "packages/kbn-reporting/server/export_type.ts", "deprecated": false, @@ -935,7 +951,7 @@ "label": "getFullRedirectAppUrl", "description": [], "signature": [ - "(config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "(config: Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -943,7 +959,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, serverInfo: ", + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>, serverInfo: ", "ReportingServerInfo", ", spaceId: string | undefined, forceNow: string | undefined) => string" ], @@ -959,7 +975,7 @@ "label": "config", "description": [], "signature": [ - "Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "Readonly<{ encryptionKey?: string | undefined; } & { enabled: boolean; capture: Readonly<{} & { maxAttempts: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -967,7 +983,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; statefulSettings: Readonly<{} & { enabled: boolean; }>; }>" ], "path": "packages/kbn-reporting/server/get_full_redirect_app_url.ts", "deprecated": false, @@ -1487,7 +1503,7 @@ "label": "ReportingConfigType", "description": [], "signature": [ - "{ readonly encryptionKey?: string | undefined; readonly enabled: boolean; readonly capture: Readonly<{} & { maxAttempts: number; }>; readonly kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; readonly queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; readonly csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", + "{ readonly encryptionKey?: string | undefined; readonly enabled: boolean; readonly capture: Readonly<{} & { maxAttempts: number; }>; readonly roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; readonly kibanaServer: Readonly<{ hostname?: string | undefined; protocol?: string | undefined; port?: number | undefined; } & {}>; readonly queue: Readonly<{} & { timeout: number | moment.Duration; pollInterval: number | moment.Duration; indexInterval: string; pollEnabled: boolean; pollIntervalErrorMultiplier: number; }>; readonly csv: Readonly<{} & { scroll: Readonly<{} & { duration: string; size: number; }>; checkForFormulas: boolean; escapeFormulaValues: boolean; enablePanelActionDownload: boolean; maxSizeBytes: number | ", { "pluginId": "@kbn/config-schema", "scope": "common", @@ -1495,7 +1511,7 @@ "section": "def-common.ByteSizeValue", "text": "ByteSizeValue" }, - "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; readonly roles: Readonly<{} & { enabled: boolean; allow: string[]; }>; readonly poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; readonly export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; readonly statefulSettings: Readonly<{} & { enabled: boolean; }>; }" + "; useByteOrderMarkEncoding: boolean; maxConcurrentShardRequests: number; }>; readonly poll: Readonly<{} & { jobCompletionNotifier: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; jobsRefresh: Readonly<{} & { interval: number; intervalErrorMultiplier: number; }>; }>; readonly export_types: Readonly<{} & { csv: Readonly<{} & { enabled: boolean; }>; png: Readonly<{} & { enabled: boolean; }>; pdf: Readonly<{} & { enabled: boolean; }>; }>; readonly statefulSettings: Readonly<{} & { enabled: boolean; }>; }" ], "path": "packages/kbn-reporting/server/types.ts", "deprecated": false, @@ -1510,7 +1526,9 @@ "label": "RunTaskFn", "description": [], "signature": [ - "(jobId: string, payload: TaskPayloadType, cancellationToken: ", + "(jobId: string, payload: TaskPayloadType, taskInstanceFields: ", + "TaskInstanceFields", + ", cancellationToken: ", { "pluginId": "@kbn/reporting-common", "scope": "common", @@ -1559,6 +1577,20 @@ "id": "def-server.RunTaskFn.$3", "type": "Object", "tags": [], + "label": "taskInstanceFields", + "description": [], + "signature": [ + "{ startedAt: Date | null; retryAt: Date | null; }" + ], + "path": "packages/kbn-reporting/server/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/reporting-server", + "id": "def-server.RunTaskFn.$4", + "type": "Object", + "tags": [], "label": "cancellationToken", "description": [], "signature": [ @@ -1576,7 +1608,7 @@ }, { "parentPluginId": "@kbn/reporting-server", - "id": "def-server.RunTaskFn.$4", + "id": "def-server.RunTaskFn.$5", "type": "Object", "tags": [], "label": "stream", diff --git a/api_docs/kbn_reporting_server.mdx b/api_docs/kbn_reporting_server.mdx index 4c448634c1009..a916bfba7a091 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/reporting-server'] --- import kbnReportingServerObj from './kbn_reporting_server.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 | |-------------------|-----------|------------------------|-----------------| -| 78 | 0 | 77 | 0 | +| 80 | 0 | 79 | 0 | ## Server diff --git a/api_docs/kbn_resizable_layout.mdx b/api_docs/kbn_resizable_layout.mdx index b30087977bd6a..05c847fc7a61b 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/resizable-layout'] --- import kbnResizableLayoutObj from './kbn_resizable_layout.devdocs.json'; diff --git a/api_docs/kbn_rison.mdx b/api_docs/kbn_rison.mdx index e3d821bf69509..69bf516e99dd8 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rison'] --- import kbnRisonObj from './kbn_rison.devdocs.json'; diff --git a/api_docs/kbn_router_utils.mdx b/api_docs/kbn_router_utils.mdx index 41dd91c10405b..825f2e7e0f313 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-01-04 +date: 2024-01-25 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 d7667564e2673..c4860ce8adaab 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/rrule'] --- import kbnRruleObj from './kbn_rrule.devdocs.json'; diff --git a/api_docs/kbn_rule_data_utils.devdocs.json b/api_docs/kbn_rule_data_utils.devdocs.json index e4de662c8e2a8..60b56e5513aa4 100644 --- a/api_docs/kbn_rule_data_utils.devdocs.json +++ b/api_docs/kbn_rule_data_utils.devdocs.json @@ -1459,7 +1459,7 @@ "label": "AlertConsumers", "description": [], "signature": [ - "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\"" + "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\" | \"AlertingExample\"" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, @@ -1759,7 +1759,7 @@ "label": "TechnicalRuleDataFieldName", "description": [], "signature": [ - "\"@timestamp\" | \"event.action\" | \"tags\" | \"kibana\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert.rule.execution.uuid\" | \"kibana.alert.instance.id\" | \"kibana.alert.rule.category\" | \"kibana.alert.rule.name\" | \"kibana.alert.rule.producer\" | \"kibana.alert.rule.uuid\" | \"kibana.alert.status\" | \"kibana.alert.uuid\" | \"kibana.space_ids\" | \"event.kind\" | \"kibana.alert.action_group\" | \"kibana.alert.case_ids\" | \"kibana.alert.duration.us\" | \"kibana.alert.end\" | \"kibana.alert.flapping\" | \"kibana.alert.maintenance_window_ids\" | \"kibana.alert.reason\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.tags\" | \"kibana.alert.start\" | \"kibana.alert.time_range\" | \"kibana.alert.workflow_assignee_ids\" | \"kibana.alert.workflow_status\" | \"kibana.alert.workflow_tags\" | \"kibana.version\" | \"kibana.alert.context\" | \"kibana.alert.evaluation.threshold\" | \"kibana.alert.evaluation.value\" | \"kibana.alert.evaluation.values\" | \"kibana.alert.group\" | \"ecs.version\" | \"kibana.alert.risk_score\" | \"kibana.alert.rule.author\" | \"kibana.alert.rule.created_at\" | \"kibana.alert.rule.created_by\" | \"kibana.alert.rule.description\" | \"kibana.alert.rule.enabled\" | \"kibana.alert.rule.from\" | \"kibana.alert.rule.interval\" | \"kibana.alert.rule.license\" | \"kibana.alert.rule.note\" | \"kibana.alert.rule.references\" | \"kibana.alert.rule.rule_id\" | \"kibana.alert.rule.rule_name_override\" | \"kibana.alert.rule.to\" | \"kibana.alert.rule.type\" | \"kibana.alert.rule.updated_at\" | \"kibana.alert.rule.updated_by\" | \"kibana.alert.rule.version\" | \"kibana.alert.severity\" | \"kibana.alert.suppression.docs_count\" | \"kibana.alert.suppression.end\" | \"kibana.alert.suppression.start\" | \"kibana.alert.suppression.terms.field\" | \"kibana.alert.suppression.terms.value\" | \"kibana.alert.system_status\" | \"kibana.alert.workflow_reason\" | \"kibana.alert.workflow_user\" | \"event.module\" | \"kibana.alert.rule.threat.framework\" | \"kibana.alert.rule.threat.tactic.id\" | \"kibana.alert.rule.threat.tactic.name\" | \"kibana.alert.rule.threat.tactic.reference\" | \"kibana.alert.rule.threat.technique.id\" | \"kibana.alert.rule.threat.technique.name\" | \"kibana.alert.rule.threat.technique.reference\" | \"kibana.alert.rule.threat.technique.subtechnique.id\" | \"kibana.alert.rule.threat.technique.subtechnique.name\" | \"kibana.alert.rule.threat.technique.subtechnique.reference\" | \"kibana.alert.building_block_type\" | \"kibana.alert\" | \"kibana.alert.rule\" | \"kibana.alert.suppression.terms\" | \"kibana.alert.group.field\" | \"kibana.alert.group.value\" | \"kibana.alert.rule.exceptions_list\" | \"kibana.alert.rule.namespace\"" + "\"@timestamp\" | \"event.action\" | \"tags\" | \"kibana\" | \"kibana.alert.rule.rule_type_id\" | \"kibana.alert.rule.consumer\" | \"kibana.alert.rule.execution.uuid\" | \"kibana.alert.instance.id\" | \"kibana.alert.rule.category\" | \"kibana.alert.rule.name\" | \"kibana.alert.rule.producer\" | \"kibana.alert.rule.uuid\" | \"kibana.alert.status\" | \"kibana.alert.uuid\" | \"kibana.space_ids\" | \"event.kind\" | \"kibana.alert.action_group\" | \"kibana.alert.case_ids\" | \"kibana.alert.duration.us\" | \"kibana.alert.end\" | \"kibana.alert.flapping\" | \"kibana.alert.maintenance_window_ids\" | \"kibana.alert.reason\" | \"kibana.alert.rule.parameters\" | \"kibana.alert.rule.tags\" | \"kibana.alert.start\" | \"kibana.alert.time_range\" | \"kibana.alert.workflow_assignee_ids\" | \"kibana.alert.workflow_status\" | \"kibana.alert.workflow_tags\" | \"kibana.version\" | \"kibana.alert.context\" | \"kibana.alert.evaluation.threshold\" | \"kibana.alert.evaluation.value\" | \"kibana.alert.evaluation.values\" | \"kibana.alert.group\" | \"ecs.version\" | \"kibana.alert.risk_score\" | \"kibana.alert.rule.author\" | \"kibana.alert.rule.created_at\" | \"kibana.alert.rule.created_by\" | \"kibana.alert.rule.description\" | \"kibana.alert.rule.enabled\" | \"kibana.alert.rule.from\" | \"kibana.alert.rule.interval\" | \"kibana.alert.rule.license\" | \"kibana.alert.rule.note\" | \"kibana.alert.rule.references\" | \"kibana.alert.rule.rule_id\" | \"kibana.alert.rule.rule_name_override\" | \"kibana.alert.rule.to\" | \"kibana.alert.rule.type\" | \"kibana.alert.rule.updated_at\" | \"kibana.alert.rule.updated_by\" | \"kibana.alert.rule.version\" | \"kibana.alert.severity\" | \"kibana.alert.suppression.docs_count\" | \"kibana.alert.suppression.end\" | \"kibana.alert.suppression.start\" | \"kibana.alert.suppression.terms.field\" | \"kibana.alert.suppression.terms.value\" | \"kibana.alert.system_status\" | \"kibana.alert.workflow_reason\" | \"kibana.alert.workflow_user\" | \"event.module\" | \"kibana.alert.rule.threat.framework\" | \"kibana.alert.rule.threat.tactic.id\" | \"kibana.alert.rule.threat.tactic.name\" | \"kibana.alert.rule.threat.tactic.reference\" | \"kibana.alert.rule.threat.technique.id\" | \"kibana.alert.rule.threat.technique.name\" | \"kibana.alert.rule.threat.technique.reference\" | \"kibana.alert.rule.threat.technique.subtechnique.id\" | \"kibana.alert.rule.threat.technique.subtechnique.name\" | \"kibana.alert.rule.threat.technique.subtechnique.reference\" | \"kibana.alert.building_block_type\" | \"kibana.alert\" | \"kibana.alert.group.field\" | \"kibana.alert.group.value\" | \"kibana.alert.rule\" | \"kibana.alert.rule.exceptions_list\" | \"kibana.alert.rule.namespace\" | \"kibana.alert.suppression.terms\"" ], "path": "packages/kbn-rule-data-utils/src/technical_field_names.ts", "deprecated": false, @@ -1804,7 +1804,7 @@ "label": "ValidFeatureId", "description": [], "signature": [ - "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\"" + "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\" | \"AlertingExample\"" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, @@ -1853,7 +1853,7 @@ "\nregistering a new instance of the rule data client\nin a new plugin will require updating the below data structure\nto include the index name where the alerts as data will be written to." ], "signature": [ - "{ readonly APM: \"apm\"; readonly LOGS: \"logs\"; readonly INFRASTRUCTURE: \"infrastructure\"; readonly OBSERVABILITY: \"observability\"; readonly SLO: \"slo\"; readonly SIEM: \"siem\"; readonly UPTIME: \"uptime\"; readonly ML: \"ml\"; readonly STACK_ALERTS: \"stackAlerts\"; }" + "{ readonly APM: \"apm\"; readonly LOGS: \"logs\"; readonly INFRASTRUCTURE: \"infrastructure\"; readonly OBSERVABILITY: \"observability\"; readonly SLO: \"slo\"; readonly SIEM: \"siem\"; readonly UPTIME: \"uptime\"; readonly ML: \"ml\"; readonly STACK_ALERTS: \"stackAlerts\"; readonly EXAMPLE: \"AlertingExample\"; }" ], "path": "packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts", "deprecated": false, diff --git a/api_docs/kbn_rule_data_utils.mdx b/api_docs/kbn_rule_data_utils.mdx index ba718f93a7ea5..0707b365a9bd4 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-01-04 +date: 2024-01-25 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 6dde8ce80a6b5..bf575d4e0a97d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/saved-objects-settings'] --- import kbnSavedObjectsSettingsObj from './kbn_saved_objects_settings.devdocs.json'; diff --git a/api_docs/kbn_search_api_panels.mdx b/api_docs/kbn_search_api_panels.mdx index a13947e6e5261..8142433eccabc 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_search_connectors.devdocs.json index ae96cdef85b9d..da566d21fe55b 100644 --- a/api_docs/kbn_search_connectors.devdocs.json +++ b/api_docs/kbn_search_connectors.devdocs.json @@ -559,7 +559,7 @@ "text": "ElasticsearchClient" }, ", id: string) => Promise<", - "WriteResponseBase", + "AcknowledgedResponseBase", ">" ], "path": "packages/kbn-search-connectors/lib/delete_connector.ts", @@ -1916,7 +1916,13 @@ "text": "SchedulingConfiguraton" }, ") => Promise<", - "WriteResponseBase", + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.ConnectorsAPIUpdateResponse", + "text": "ConnectorsAPIUpdateResponse" + }, ">" ], "path": "packages/kbn-search-connectors/lib/update_connector_scheduling.ts", @@ -3342,6 +3348,34 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorsAPIUpdateResponse", + "type": "Interface", + "tags": [], + "label": "ConnectorsAPIUpdateResponse", + "description": [], + "path": "packages/kbn-search-connectors/types/connectors_api.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.ConnectorsAPIUpdateResponse.result", + "type": "Enum", + "tags": [], + "label": "result", + "description": [], + "signature": [ + "Result" + ], + "path": "packages/kbn-search-connectors/types/connectors_api.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.ConnectorScheduling", @@ -5100,7 +5134,7 @@ "section": "def-common.IngestPipelineParams", "text": "IngestPipelineParams" }, - " | null; service_type: string | null; }; status: ", + " | null; service_type: string | null; }; metadata: Record; status: ", { "pluginId": "@kbn/search-connectors", "scope": "common", @@ -5108,7 +5142,7 @@ "section": "def-common.SyncStatus", "text": "SyncStatus" }, - "; created_at: string; metadata: Record; job_type: ", + "; created_at: string; job_type: ", { "pluginId": "@kbn/search-connectors", "scope": "common", @@ -5904,6 +5938,206 @@ } ] }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers", + "type": "Object", + "tags": [], + "label": "containers", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTAREA" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".LIST" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.containers.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.azure_blob_storage.configuration.retry_count", @@ -11529,10 +11763,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type", "type": "Object", "tags": [], - "label": "repositories", + "label": "repo_type", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11540,7 +11774,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11554,7 +11788,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -11568,7 +11802,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.display", "type": "string", "tags": [], "label": "display", @@ -11581,7 +11815,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTAREA" + ".DROPDOWN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11589,7 +11823,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.label", "type": "string", "tags": [], "label": "label", @@ -11600,13 +11834,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.options", "type": "Array", "tags": [], "label": "options", "description": [], "signature": [ - "never[]" + "{ label: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11614,7 +11848,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.order", "type": "number", "tags": [], "label": "order", @@ -11625,7 +11859,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.required", "type": "boolean", "tags": [], "label": "required", @@ -11639,7 +11873,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -11653,7 +11887,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.tooltip", "type": "string", "tags": [], "label": "tooltip", @@ -11664,7 +11898,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.type", "type": "string", "tags": [], "label": "type", @@ -11677,7 +11911,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".LIST" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11685,7 +11919,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -11699,7 +11933,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.validations", "type": "Array", "tags": [], "label": "validations", @@ -11713,7 +11947,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repo_type.value", "type": "string", "tags": [], "label": "value", @@ -11726,10 +11960,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name", "type": "Object", "tags": [], - "label": "ssl_enabled", + "label": "org_name", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11737,7 +11971,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11751,13 +11985,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: string; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11765,7 +11999,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.display", "type": "string", "tags": [], "label": "display", @@ -11778,7 +12012,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11786,7 +12020,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.label", "type": "string", "tags": [], "label": "label", @@ -11797,7 +12031,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.options", "type": "Array", "tags": [], "label": "options", @@ -11811,7 +12045,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.order", "type": "number", "tags": [], "label": "order", @@ -11822,7 +12056,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.required", "type": "boolean", "tags": [], "label": "required", @@ -11836,7 +12070,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -11850,7 +12084,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -11864,7 +12098,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.type", "type": "string", "tags": [], "label": "type", @@ -11877,7 +12111,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11885,7 +12119,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -11899,7 +12133,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.validations", "type": "Array", "tags": [], "label": "validations", @@ -11913,14 +12147,11 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.org_name.value", + "type": "string", "tags": [], "label": "value", "description": [], - "signature": [ - "false" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -11929,10 +12160,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories", "type": "Object", "tags": [], - "label": "ssl_ca", + "label": "repositories", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11940,7 +12171,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -11954,13 +12185,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "{ field: string; value: true; }[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11968,7 +12199,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.display", "type": "string", "tags": [], "label": "display", @@ -11981,7 +12212,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TEXTBOX" + ".TEXTAREA" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -11989,7 +12220,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.label", "type": "string", "tags": [], "label": "label", @@ -12000,7 +12231,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.options", "type": "Array", "tags": [], "label": "options", @@ -12014,7 +12245,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.order", "type": "number", "tags": [], "label": "order", @@ -12025,7 +12256,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.required", "type": "boolean", "tags": [], "label": "required", @@ -12039,7 +12270,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12053,21 +12284,18 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.tooltip", - "type": "Uncategorized", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.tooltip", + "type": "string", "tags": [], "label": "tooltip", "description": [], - "signature": [ - "null" - ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.type", "type": "string", "tags": [], "label": "type", @@ -12080,7 +12308,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".STRING" + ".LIST" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12088,7 +12316,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", @@ -12102,7 +12330,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.validations", "type": "Array", "tags": [], "label": "validations", @@ -12116,7 +12344,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.repositories.value", "type": "string", "tags": [], "label": "value", @@ -12129,10 +12357,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled", "type": "Object", "tags": [], - "label": "retry_count", + "label": "ssl_enabled", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12140,7 +12368,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -12154,7 +12382,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.depends_on", "type": "Array", "tags": [], "label": "depends_on", @@ -12168,7 +12396,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.display", "type": "string", "tags": [], "label": "display", @@ -12181,7 +12409,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".NUMERIC" + ".TOGGLE" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12189,7 +12417,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.label", "type": "string", "tags": [], "label": "label", @@ -12200,7 +12428,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.options", "type": "Array", "tags": [], "label": "options", @@ -12214,7 +12442,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.order", "type": "number", "tags": [], "label": "order", @@ -12225,13 +12453,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.required", "type": "boolean", "tags": [], "label": "required", "description": [], "signature": [ - "false" + "true" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12239,7 +12467,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12253,7 +12481,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.tooltip", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.tooltip", "type": "Uncategorized", "tags": [], "label": "tooltip", @@ -12267,7 +12495,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.type", "type": "string", "tags": [], "label": "type", @@ -12280,7 +12508,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".INTEGER" + ".BOOLEAN" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12288,13 +12516,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12302,7 +12530,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.validations", "type": "Array", "tags": [], "label": "validations", @@ -12316,11 +12544,14 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.value", - "type": "number", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_enabled.value", + "type": "boolean", "tags": [], "label": "value", "description": [], + "signature": [ + "false" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false @@ -12329,10 +12560,10 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca", "type": "Object", "tags": [], - "label": "use_text_extraction_service", + "label": "ssl_ca", "description": [], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12340,7 +12571,7 @@ "children": [ { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.default_value", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.default_value", "type": "Uncategorized", "tags": [], "label": "default_value", @@ -12354,13 +12585,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.depends_on", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.depends_on", "type": "Array", "tags": [], "label": "depends_on", "description": [], "signature": [ - "never[]" + "{ field: string; value: true; }[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12368,7 +12599,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.display", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.display", "type": "string", "tags": [], "label": "display", @@ -12381,7 +12612,7 @@ "section": "def-common.DisplayType", "text": "DisplayType" }, - ".TOGGLE" + ".TEXTBOX" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12389,7 +12620,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.label", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.label", "type": "string", "tags": [], "label": "label", @@ -12400,7 +12631,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.options", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.options", "type": "Array", "tags": [], "label": "options", @@ -12414,7 +12645,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.order", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.order", "type": "number", "tags": [], "label": "order", @@ -12425,7 +12656,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.required", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.required", "type": "boolean", "tags": [], "label": "required", @@ -12439,7 +12670,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.sensitive", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.sensitive", "type": "boolean", "tags": [], "label": "sensitive", @@ -12453,18 +12684,21 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.tooltip", - "type": "string", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.tooltip", + "type": "Uncategorized", "tags": [], "label": "tooltip", "description": [], + "signature": [ + "null" + ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.type", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.type", "type": "string", "tags": [], "label": "type", @@ -12477,7 +12711,7 @@ "section": "def-common.FieldType", "text": "FieldType" }, - ".BOOLEAN" + ".STRING" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12485,13 +12719,13 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.ui_restrictions", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.ui_restrictions", "type": "Array", "tags": [], "label": "ui_restrictions", "description": [], "signature": [ - "string[]" + "never[]" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, @@ -12499,7 +12733,7 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.validations", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.validations", "type": "Array", "tags": [], "label": "validations", @@ -12513,31 +12747,628 @@ }, { "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.value", - "type": "boolean", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.ssl_ca.value", + "type": "string", "tags": [], "label": "value", "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count", + "type": "Object", + "tags": [], + "label": "retry_count", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".NUMERIC" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], "signature": [ "false" ], "path": "packages/kbn-search-connectors/types/native_connectors.ts", "deprecated": false, "trackAdoption": false - } - ] - } - ] - }, - { - "parentPluginId": "@kbn/search-connectors", - "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.name", - "type": "string", - "tags": [], - "label": "name", - "description": [], - "path": "packages/kbn-search-connectors/types/native_connectors.ts", - "deprecated": false, + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".INTEGER" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.retry_count.value", + "type": "number", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service", + "type": "Object", + "tags": [], + "label": "use_text_extraction_service", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "string[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_text_extraction_service.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security", + "type": "Object", + "tags": [], + "label": "use_document_level_security", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "{ field: string; value: string; }[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TOGGLE" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.tooltip", + "type": "string", + "tags": [], + "label": "tooltip", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".BOOLEAN" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.configuration.use_document_level_security.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.github.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, "trackAdoption": false }, { @@ -12599,6 +13430,206 @@ "deprecated": false, "trackAdoption": false, "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets", + "type": "Object", + "tags": [], + "label": "buckets", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.default_value", + "type": "Uncategorized", + "tags": [], + "label": "default_value", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.depends_on", + "type": "Array", + "tags": [], + "label": "depends_on", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.display", + "type": "string", + "tags": [], + "label": "display", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.DisplayType", + "text": "DisplayType" + }, + ".TEXTAREA" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.label", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.options", + "type": "Array", + "tags": [], + "label": "options", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.order", + "type": "number", + "tags": [], + "label": "order", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.required", + "type": "boolean", + "tags": [], + "label": "required", + "description": [], + "signature": [ + "true" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.sensitive", + "type": "boolean", + "tags": [], + "label": "sensitive", + "description": [], + "signature": [ + "false" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.tooltip", + "type": "Uncategorized", + "tags": [], + "label": "tooltip", + "description": [], + "signature": [ + "null" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + { + "pluginId": "@kbn/search-connectors", + "scope": "common", + "docId": "kibKbnSearchConnectorsPluginApi", + "section": "def-common.FieldType", + "text": "FieldType" + }, + ".LIST" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.ui_restrictions", + "type": "Array", + "tags": [], + "label": "ui_restrictions", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.validations", + "type": "Array", + "tags": [], + "label": "validations", + "description": [], + "signature": [ + "never[]" + ], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/search-connectors", + "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.buckets.value", + "type": "string", + "tags": [], + "label": "value", + "description": [], + "path": "packages/kbn-search-connectors/types/native_connectors.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "@kbn/search-connectors", "id": "def-common.NATIVE_CONNECTOR_DEFINITIONS.google_cloud_storage.configuration.service_account_credentials", diff --git a/api_docs/kbn_search_connectors.mdx b/api_docs/kbn_search_connectors.mdx index 87f07895068e2..db51b3fce8e3a 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-connectors'] --- import kbnSearchConnectorsObj from './kbn_search_connectors.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/te | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 2663 | 0 | 2663 | 0 | +| 2735 | 0 | 2735 | 0 | ## Common diff --git a/api_docs/kbn_search_errors.mdx b/api_docs/kbn_search_errors.mdx index 6436525cb6a0b..6864a272bb24b 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-01-04 +date: 2024-01-25 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 be8ab42529bc2..aab3c3b6a00b6 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-01-04 +date: 2024-01-25 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 7fdb3a3cf28fe..e15776f4c9776 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/search-response-warnings'] --- import kbnSearchResponseWarningsObj from './kbn_search_response_warnings.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_common.mdx b/api_docs/kbn_security_plugin_types_common.mdx index dbee323f97b17..7a98eb98bc2e2 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-common'] --- import kbnSecurityPluginTypesCommonObj from './kbn_security_plugin_types_common.devdocs.json'; diff --git a/api_docs/kbn_security_plugin_types_public.mdx b/api_docs/kbn_security_plugin_types_public.mdx index 98b7d98ee4725..2b640b9a4cfc2 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-01-04 +date: 2024-01-25 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 e0f56bc22e011..dec22d7fd7b96 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-plugin-types-server'] --- import kbnSecurityPluginTypesServerObj from './kbn_security_plugin_types_server.devdocs.json'; diff --git a/api_docs/kbn_security_solution_features.mdx b/api_docs/kbn_security_solution_features.mdx index 2fbb7e118c612..033fa6e8c09f8 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/security-solution-features'] --- import kbnSecuritySolutionFeaturesObj from './kbn_security_solution_features.devdocs.json'; diff --git a/api_docs/kbn_security_solution_navigation.mdx b/api_docs/kbn_security_solution_navigation.mdx index 92e8e8344b2b6..ef3fecd5bba97 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-01-04 +date: 2024-01-25 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 aff5bd1085fa8..61d4dbe34836a 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-01-04 +date: 2024-01-25 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 dc21480479027..ba1eec292bbbb 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-01-04 +date: 2024-01-25 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 7163dac06cdc2..d60c0b6b9cd46 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_securitysolution_data_table.devdocs.json index b003dd04c9e82..903b3db4d9e57 100644 --- a/api_docs/kbn_securitysolution_data_table.devdocs.json +++ b/api_docs/kbn_securitysolution_data_table.devdocs.json @@ -471,15 +471,15 @@ "label": "getTableByIdSelector", "description": [], "signature": [ - "() => ((state: { dataTable: ", + "() => ((state: ", { "pluginId": "@kbn/securitysolution-data-table", "scope": "common", "docId": "kibKbnSecuritysolutionDataTablePluginApi", - "section": "def-common.TableState", - "text": "TableState" + "section": "def-common.DataTableState", + "text": "DataTableState" }, - "; }, params_0: string) => ", + ", tableId: string) => ", { "pluginId": "@kbn/securitysolution-data-table", "scope": "common", @@ -505,7 +505,7 @@ "section": "def-common.DataTableModel", "text": "DataTableModel" }, - " & { clearCache: () => void; }> & { clearCache: () => void; }" + ", { clearCache: () => void; }> & { clearCache: () => void; }" ], "path": "x-pack/packages/security-solution/data_table/store/data_table/selectors.ts", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_data_table.mdx b/api_docs/kbn_securitysolution_data_table.mdx index 90937af245e19..54d2d011c53c2 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-01-04 +date: 2024-01-25 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 51e74190ac751..a21ad131f2ad6 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-ecs'] --- import kbnSecuritysolutionEcsObj from './kbn_securitysolution_ecs.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_es_utils.mdx b/api_docs/kbn_securitysolution_es_utils.mdx index 17a40ed54bda2..f9e5bfde959dc 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-01-04 +date: 2024-01-25 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 e264ff91b5597..22435ff854ee1 100644 --- a/api_docs/kbn_securitysolution_exception_list_components.devdocs.json +++ b/api_docs/kbn_securitysolution_exception_list_components.devdocs.json @@ -834,7 +834,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"legend\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"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\" | \"table\" | \"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\" | \"line\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"a\" | \"abbr\" | \"address\" | \"area\" | \"article\" | \"aside\" | \"audio\" | \"b\" | \"base\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"body\" | \"br\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"data\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"form\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"i\" | \"iframe\" | \"img\" | \"input\" | \"ins\" | \"kbd\" | \"keygen\" | \"label\" | \"legend\" | \"li\" | \"main\" | \"mark\" | \"menu\" | \"menuitem\" | \"meta\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"output\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"progress\" | \"q\" | \"rp\" | \"rt\" | \"ruby\" | \"s\" | \"samp\" | \"slot\" | \"script\" | \"section\" | \"select\" | \"span\" | \"strong\" | \"style\" | \"summary\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"time\" | \"title\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"svg\" | \"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\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"stop\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -848,7 +848,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"legend\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"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\" | \"table\" | \"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\" | \"line\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"a\" | \"abbr\" | \"address\" | \"area\" | \"article\" | \"aside\" | \"audio\" | \"b\" | \"base\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"body\" | \"br\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"data\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"form\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"i\" | \"iframe\" | \"img\" | \"input\" | \"ins\" | \"kbd\" | \"keygen\" | \"label\" | \"legend\" | \"li\" | \"main\" | \"mark\" | \"menu\" | \"menuitem\" | \"meta\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"output\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"progress\" | \"q\" | \"rp\" | \"rt\" | \"ruby\" | \"s\" | \"samp\" | \"slot\" | \"script\" | \"section\" | \"select\" | \"span\" | \"strong\" | \"style\" | \"summary\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"time\" | \"title\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"svg\" | \"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\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"stop\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/meta/index.tsx", "deprecated": false, @@ -987,7 +987,7 @@ "label": "securityLinkAnchorComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"legend\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"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\" | \"table\" | \"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\" | \"line\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"a\" | \"abbr\" | \"address\" | \"area\" | \"article\" | \"aside\" | \"audio\" | \"b\" | \"base\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"body\" | \"br\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"data\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"form\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"i\" | \"iframe\" | \"img\" | \"input\" | \"ins\" | \"kbd\" | \"keygen\" | \"label\" | \"legend\" | \"li\" | \"main\" | \"mark\" | \"menu\" | \"menuitem\" | \"meta\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"output\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"progress\" | \"q\" | \"rp\" | \"rt\" | \"ruby\" | \"s\" | \"samp\" | \"slot\" | \"script\" | \"section\" | \"select\" | \"span\" | \"strong\" | \"style\" | \"summary\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"time\" | \"title\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"svg\" | \"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\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"stop\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" ], "path": "packages/kbn-securitysolution-exception-list-components/src/exception_item_card/exception_item_card.tsx", "deprecated": false, @@ -1001,7 +1001,7 @@ "label": "formattedDateComponent", "description": [], "signature": [ - "\"symbol\" | \"object\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"slot\" | \"style\" | \"title\" | \"meta\" | \"data\" | \"pattern\" | \"summary\" | \"template\" | \"span\" | \"main\" | \"path\" | \"form\" | \"body\" | \"q\" | \"label\" | \"progress\" | \"article\" | \"image\" | \"menu\" | \"stop\" | \"base\" | \"s\" | \"legend\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"p\" | \"canvas\" | \"svg\" | \"select\" | \"output\" | \"script\" | \"time\" | \"mask\" | \"input\" | \"a\" | \"abbr\" | \"address\" | \"area\" | \"aside\" | \"audio\" | \"b\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"br\" | \"button\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"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\" | \"table\" | \"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\" | \"line\" | \"linearGradient\" | \"marker\" | \"metadata\" | \"mpath\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"switch\" | \"textPath\" | \"tspan\" | \"use\" | \"view\"" + "\"symbol\" | \"object\" | \"big\" | \"link\" | \"small\" | \"sub\" | \"sup\" | \"source\" | \"desc\" | \"filter\" | \"text\" | \"map\" | \"head\" | React.ComponentType | \"a\" | \"abbr\" | \"address\" | \"area\" | \"article\" | \"aside\" | \"audio\" | \"b\" | \"base\" | \"bdi\" | \"bdo\" | \"blockquote\" | \"body\" | \"br\" | \"button\" | \"canvas\" | \"caption\" | \"cite\" | \"code\" | \"col\" | \"colgroup\" | \"data\" | \"datalist\" | \"dd\" | \"del\" | \"details\" | \"dfn\" | \"dialog\" | \"div\" | \"dl\" | \"dt\" | \"em\" | \"embed\" | \"fieldset\" | \"figcaption\" | \"figure\" | \"footer\" | \"form\" | \"h1\" | \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" | \"header\" | \"hgroup\" | \"hr\" | \"html\" | \"i\" | \"iframe\" | \"img\" | \"input\" | \"ins\" | \"kbd\" | \"keygen\" | \"label\" | \"legend\" | \"li\" | \"main\" | \"mark\" | \"menu\" | \"menuitem\" | \"meta\" | \"meter\" | \"nav\" | \"noindex\" | \"noscript\" | \"ol\" | \"optgroup\" | \"option\" | \"output\" | \"p\" | \"param\" | \"picture\" | \"pre\" | \"progress\" | \"q\" | \"rp\" | \"rt\" | \"ruby\" | \"s\" | \"samp\" | \"slot\" | \"script\" | \"section\" | \"select\" | \"span\" | \"strong\" | \"style\" | \"summary\" | \"table\" | \"template\" | \"tbody\" | \"td\" | \"textarea\" | \"tfoot\" | \"th\" | \"thead\" | \"time\" | \"title\" | \"tr\" | \"track\" | \"u\" | \"ul\" | \"var\" | \"video\" | \"wbr\" | \"webview\" | \"svg\" | \"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\" | \"image\" | \"line\" | \"linearGradient\" | \"marker\" | \"mask\" | \"metadata\" | \"mpath\" | \"path\" | \"pattern\" | \"polygon\" | \"polyline\" | \"radialGradient\" | \"rect\" | \"stop\" | \"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 b2afeec510c3c..0d5a8ff9bf631 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-exception-list-components'] --- import kbnSecuritysolutionExceptionListComponentsObj from './kbn_securitysolution_exception_list_components.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_grouping.devdocs.json b/api_docs/kbn_securitysolution_grouping.devdocs.json index 86037516e7000..f30f0953d436e 100644 --- a/api_docs/kbn_securitysolution_grouping.devdocs.json +++ b/api_docs/kbn_securitysolution_grouping.devdocs.json @@ -242,9 +242,9 @@ "Type for dynamic grouping component props where T is the consumer `GroupingAggregation`" ], "signature": [ - "{ isLoading: boolean; data?: ", + "{ data?: ", "ParsedGroupingAggregation", - " | undefined; activePage: number; itemsPerPage: number; groupingLevel?: number | undefined; inspectButton?: JSX.Element | undefined; onChangeGroupsItemsPerPage?: ((size: number) => void) | undefined; onChangeGroupsPage?: ((index: number) => void) | undefined; renderChildComponent: (groupFilter: ", + " | undefined; isLoading: boolean; activePage: number; itemsPerPage: number; groupingLevel?: number | undefined; inspectButton?: JSX.Element | undefined; onChangeGroupsItemsPerPage?: ((size: number) => void) | undefined; onChangeGroupsPage?: ((index: number) => void) | undefined; renderChildComponent: (groupFilter: ", { "pluginId": "@kbn/es-query", "scope": "common", diff --git a/api_docs/kbn_securitysolution_grouping.mdx b/api_docs/kbn_securitysolution_grouping.mdx index db37eb84d8666..fc84849614db1 100644 --- a/api_docs/kbn_securitysolution_grouping.mdx +++ b/api_docs/kbn_securitysolution_grouping.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-securitysolution-grouping title: "@kbn/securitysolution-grouping" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/securitysolution-grouping plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-grouping'] --- import kbnSecuritysolutionGroupingObj from './kbn_securitysolution_grouping.devdocs.json'; diff --git a/api_docs/kbn_securitysolution_hook_utils.mdx b/api_docs/kbn_securitysolution_hook_utils.mdx index 0854b53299222..0671e3eb3cef4 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-01-04 +date: 2024-01-25 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 acb3294dcff1b..334033e0e36c4 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_securitysolution_io_ts_list_types.devdocs.json index e3b4d3c836d99..8bce51b9ef333 100644 --- a/api_docs/kbn_securitysolution_io_ts_list_types.devdocs.json +++ b/api_docs/kbn_securitysolution_io_ts_list_types.devdocs.json @@ -3020,7 +3020,7 @@ "label": "CreateListSchemaDecoded", "description": [], "signature": [ - "{ type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; id: string | undefined; name: string; serializer: string | undefined; description: string; meta: object | undefined; deserializer: string | undefined; } & { version: number; }" + "{ type: \"boolean\" | \"geo_point\" | \"geo_shape\" | \"ip\" | \"binary\" | \"keyword\" | \"text\" | \"date\" | \"date_nanos\" | \"integer\" | \"long\" | \"short\" | \"byte\" | \"float\" | \"half_float\" | \"double\" | \"integer_range\" | \"float_range\" | \"long_range\" | \"double_range\" | \"date_range\" | \"ip_range\" | \"shape\"; id: string | undefined; name: string; serializer: string | undefined; meta: object | undefined; description: string; deserializer: string | undefined; } & { version: number; }" ], "path": "packages/kbn-securitysolution-io-ts-list-types/src/request/create_list_schema/index.ts", "deprecated": false, diff --git a/api_docs/kbn_securitysolution_io_ts_list_types.mdx b/api_docs/kbn_securitysolution_io_ts_list_types.mdx index ea3f440adbbeb..d32220cd9d6dc 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-01-04 +date: 2024-01-25 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 4e888725a1da8..4814478893a18 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-01-04 +date: 2024-01-25 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 0ffb44db27367..c763aee17f68d 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-01-04 +date: 2024-01-25 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 40e6da5004cc5..fc898a1a1f1f4 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-01-04 +date: 2024-01-25 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 18f0cf1ae0ee2..958c36f8e42d5 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-01-04 +date: 2024-01-25 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 2a3347f55bae6..b6beb4614ff77 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-01-04 +date: 2024-01-25 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 c1ee608bb1db2..e4983b5b9fb81 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-01-04 +date: 2024-01-25 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 afa1e118ebf3e..00038ffacad32 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-01-04 +date: 2024-01-25 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 a87fc0b2ac0ed..a020dd4d69fde 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-01-04 +date: 2024-01-25 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 95f3463571774..9456981a264a5 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/securitysolution-utils'] --- import kbnSecuritysolutionUtilsObj from './kbn_securitysolution_utils.devdocs.json'; diff --git a/api_docs/kbn_server_http_tools.mdx b/api_docs/kbn_server_http_tools.mdx index ae4b50cd3bb4a..da2bab9c6a009 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-01-04 +date: 2024-01-25 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 57af4696ddfaa..99bb9e6ee18f3 100644 --- a/api_docs/kbn_server_route_repository.devdocs.json +++ b/api_docs/kbn_server_route_repository.devdocs.json @@ -352,7 +352,15 @@ "label": "ClientRequestParamsOf", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT | undefined; handler: ({}: any) => Promise; } & ", + "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " | undefined | undefined; handler: ({}: any) => Promise; } & ", "ServerRouteCreateOptions", " ? TRouteParamsRT extends ", { @@ -377,7 +385,15 @@ "label": "DecodedRequestParamsOf", "description": [], "signature": [ - "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT | undefined; handler: ({}: any) => Promise; } & ", + "TServerRouteRepository[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " | undefined | undefined; handler: ({}: any) => Promise; } & ", "ServerRouteCreateOptions", " ? TRouteParamsRT extends ", { diff --git a/api_docs/kbn_server_route_repository.mdx b/api_docs/kbn_server_route_repository.mdx index 937fee8f57568..c45c8b4c06ee7 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/server-route-repository'] --- import kbnServerRouteRepositoryObj from './kbn_server_route_repository.devdocs.json'; diff --git a/api_docs/kbn_serverless_common_settings.mdx b/api_docs/kbn_serverless_common_settings.mdx index f81861d2b7a22..78c3896088adb 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-01-04 +date: 2024-01-25 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 ae38e144c548d..ed4c145ed971c 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-01-04 +date: 2024-01-25 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 2f55b792e84bf..28b26d501c5fb 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-01-04 +date: 2024-01-25 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 c6dc4f07ec729..6889909a0b201 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-01-04 +date: 2024-01-25 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 83ebdf1d77e17..1c552a9894634 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-01-04 +date: 2024-01-25 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 ec1bab55da237..6df98598e5e30 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-01-04 +date: 2024-01-25 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 5431f9e167731..18295ef820149 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-01-04 +date: 2024-01-25 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 066131a53df68..f027487ef8c57 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-01-04 +date: 2024-01-25 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 3938867793590..33b99fca02a07 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_shared_ux_button_toolbar.devdocs.json index 1e2e1a3777596..5990f6769f161 100644 --- a/api_docs/kbn_shared_ux_button_toolbar.devdocs.json +++ b/api_docs/kbn_shared_ux_button_toolbar.devdocs.json @@ -78,7 +78,7 @@ "\nA group of buttons each performing an action, represented by an icon." ], "signature": [ - "({ buttons, legend, buttonSize }: ", + "({ buttons, legend, buttonSize, \"data-test-subj\": dataTestSubj, }: ", { "pluginId": "@kbn/shared-ux-button-toolbar", "scope": "common", @@ -97,7 +97,7 @@ "id": "def-common.IconButtonGroup.$1", "type": "Object", "tags": [], - "label": "{ buttons, legend, buttonSize = 'm' }", + "label": "{\n buttons,\n legend,\n buttonSize = 'm',\n 'data-test-subj': dataTestSubj,\n}", "description": [], "signature": [ { @@ -358,6 +358,54 @@ "path": "packages/shared-ux/button_toolbar/src/buttons/icon_button_group/icon_button_group.tsx", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/shared-ux-button-toolbar", + "id": "def-common.IconButton.isDisabled", + "type": "CompoundType", + "tags": [], + "label": "isDisabled", + "description": [ + "To disable the action" + ], + "signature": [ + "boolean | undefined" + ], + "path": "packages/shared-ux/button_toolbar/src/buttons/icon_button_group/icon_button_group.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/shared-ux-button-toolbar", + "id": "def-common.IconButton.ariaexpanded", + "type": "CompoundType", + "tags": [], + "label": "'aria-expanded'", + "description": [ + "A11y for button" + ], + "signature": [ + "boolean | undefined" + ], + "path": "packages/shared-ux/button_toolbar/src/buttons/icon_button_group/icon_button_group.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/shared-ux-button-toolbar", + "id": "def-common.IconButton.ariacontrols", + "type": "string", + "tags": [], + "label": "'aria-controls'", + "description": [ + "A11y for button" + ], + "signature": [ + "string | undefined" + ], + "path": "packages/shared-ux/button_toolbar/src/buttons/icon_button_group/icon_button_group.tsx", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -421,7 +469,23 @@ "Button size" ], "signature": [ - "\"m\" | \"compressed\" | \"s\" | undefined" + "\"m\" | \"s\" | \"compressed\" | undefined" + ], + "path": "packages/shared-ux/button_toolbar/src/buttons/icon_button_group/icon_button_group.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/shared-ux-button-toolbar", + "id": "def-common.Props.datatestsubj", + "type": "string", + "tags": [], + "label": "'data-test-subj'", + "description": [ + "Test subject for button group" + ], + "signature": [ + "string | undefined" ], "path": "packages/shared-ux/button_toolbar/src/buttons/icon_button_group/icon_button_group.tsx", "deprecated": false, @@ -471,7 +535,7 @@ "label": "Props", "description": [], "signature": [ - "{ fullWidth?: boolean | undefined; 'aria-label'?: string | undefined; onClick?: React.MouseEventHandler | undefined; 'data-test-subj'?: string | undefined; isDisabled?: boolean | undefined; isLoading?: boolean | undefined; size?: \"m\" | \"s\" | undefined; as?: \"standard\" | undefined; fontWeight?: ToolbarButtonFontWeights | undefined; iconSide?: ", + "{ fullWidth?: boolean | undefined; 'aria-label'?: string | undefined; onBlur?: React.FocusEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; 'data-test-subj'?: string | undefined; isDisabled?: boolean | undefined; isLoading?: boolean | undefined; size?: \"m\" | \"s\" | undefined; as?: \"standard\" | undefined; fontWeight?: ToolbarButtonFontWeights | undefined; iconSide?: ", "ButtonContentIconSide", "; groupPosition?: ButtonPositions | undefined; hasArrow?: boolean | undefined; }" ], diff --git a/api_docs/kbn_shared_ux_button_toolbar.mdx b/api_docs/kbn_shared_ux_button_toolbar.mdx index ef44ec1d7e587..9a90c707b5f25 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-button-toolbar'] --- import kbnSharedUxButtonToolbarObj from './kbn_shared_ux_button_toolbar.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 | |-------------------|-----------|------------------------|-----------------| -| 26 | 0 | 8 | 0 | +| 30 | 0 | 8 | 0 | ## Common diff --git a/api_docs/kbn_shared_ux_card_no_data.devdocs.json b/api_docs/kbn_shared_ux_card_no_data.devdocs.json index 1f648e15e5a1f..adf37265e0b70 100644 --- a/api_docs/kbn_shared_ux_card_no_data.devdocs.json +++ b/api_docs/kbn_shared_ux_card_no_data.devdocs.json @@ -130,9 +130,9 @@ "\nProps for the `NoDataCard` pure component." ], "signature": [ - "Partial> & { button?: React.ReactNode; onClick?: React.MouseEventHandler | undefined; description?: React.ReactNode; category?: string | undefined; canAccessFleet?: boolean | undefined; }" + ", \"title\" | \"className\" | \"href\">> & { button?: React.ReactNode; onClick?: React.MouseEventHandler | undefined; description?: React.ReactNode; category?: string | undefined; canAccessFleet?: boolean | undefined; }" ], "path": "packages/shared-ux/card/no_data/types/index.d.ts", "deprecated": false, @@ -168,9 +168,9 @@ "\nProps for the `NoDataCard` sevice-connected component." ], "signature": [ - "Partial> & { button?: React.ReactNode; onClick?: React.MouseEventHandler | undefined; description?: React.ReactNode; category?: string | undefined; canAccessFleet?: boolean | undefined; }" + ", \"title\" | \"className\" | \"href\">> & { button?: React.ReactNode; onClick?: React.MouseEventHandler | undefined; description?: React.ReactNode; category?: string | undefined; canAccessFleet?: boolean | undefined; }" ], "path": "packages/shared-ux/card/no_data/types/index.d.ts", "deprecated": false, diff --git a/api_docs/kbn_shared_ux_card_no_data.mdx b/api_docs/kbn_shared_ux_card_no_data.mdx index c3f456f227f0d..1b3bd110832ee 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_shared_ux_card_no_data_mocks.devdocs.json index 0da58898917f8..9e1cfa16386c8 100644 --- a/api_docs/kbn_shared_ux_card_no_data_mocks.devdocs.json +++ b/api_docs/kbn_shared_ux_card_no_data_mocks.devdocs.json @@ -505,7 +505,7 @@ "\nStorybook parameters provided from the controls addon." ], "signature": [ - "{ description: any; category: any; title: any; button: any; canAccessFleet: any; }" + "{ button: any; title: any; description: any; category: any; canAccessFleet: any; }" ], "path": "packages/shared-ux/card/no_data/mocks/src/storybook.ts", "deprecated": false, 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 5d15ab603ca6c..6d03d3515a42c 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-01-04 +date: 2024-01-25 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 76adf1537f4c3..414c57e868c56 100644 --- a/api_docs/kbn_shared_ux_chrome_navigation.devdocs.json +++ b/api_docs/kbn_shared_ux_chrome_navigation.devdocs.json @@ -5,10 +5,10 @@ "functions": [ { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.DefaultNavigation", + "id": "def-public.Navigation", "type": "Function", "tags": [], - "label": "DefaultNavigation", + "label": "Navigation", "description": [], "signature": [ "React.FunctionComponent<", @@ -16,27 +16,19 @@ "pluginId": "@kbn/shared-ux-chrome-navigation", "scope": "public", "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.ProjectNavigationDefinition", - "text": "ProjectNavigationDefinition" + "section": "def-public.Props", + "text": "Props" }, - "<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.AppDeepLinkId", - "text": "AppDeepLinkId" - }, - ", string, string> & Props>" + ">" ], - "path": "packages/shared-ux/chrome/navigation/src/ui/default_navigation.tsx", + "path": "packages/shared-ux/chrome/navigation/src/ui/navigation.tsx", "deprecated": false, "trackAdoption": false, "returnComment": [], "children": [ { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.DefaultNavigation.$1", + "id": "def-public.Navigation.$1", "type": "CompoundType", "tags": [], "label": "props", @@ -50,7 +42,7 @@ }, { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.DefaultNavigation.$2", + "id": "def-public.Navigation.$2", "type": "Any", "tags": [], "label": "context", @@ -65,376 +57,6 @@ ], "initialIsOpen": false }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets", - "type": "Function", - "tags": [], - "label": "getPresets", - "description": [], - "signature": [ - "(preset: \"devtools\") => ", - { - "pluginId": "@kbn/default-nav-devtools", - "scope": "common", - "docId": "kibKbnDefaultNavDevtoolsPluginApi", - "section": "def-common.DevToolsNodeDefinition", - "text": "DevToolsNodeDefinition" - } - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets.$1", - "type": "string", - "tags": [], - "label": "preset", - "description": [], - "signature": [ - "\"devtools\"" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets", - "type": "Function", - "tags": [], - "label": "getPresets", - "description": [], - "signature": [ - "(preset: \"management\") => ", - { - "pluginId": "@kbn/default-nav-management", - "scope": "common", - "docId": "kibKbnDefaultNavManagementPluginApi", - "section": "def-common.ManagementNodeDefinition", - "text": "ManagementNodeDefinition" - } - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets.$1", - "type": "string", - "tags": [], - "label": "preset", - "description": [], - "signature": [ - "\"management\"" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets", - "type": "Function", - "tags": [], - "label": "getPresets", - "description": [], - "signature": [ - "(preset: \"ml\") => ", - { - "pluginId": "@kbn/default-nav-ml", - "scope": "common", - "docId": "kibKbnDefaultNavMlPluginApi", - "section": "def-common.MlNodeDefinition", - "text": "MlNodeDefinition" - } - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets.$1", - "type": "string", - "tags": [], - "label": "preset", - "description": [], - "signature": [ - "\"ml\"" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets", - "type": "Function", - "tags": [], - "label": "getPresets", - "description": [], - "signature": [ - "(preset: \"analytics\") => ", - { - "pluginId": "@kbn/default-nav-analytics", - "scope": "common", - "docId": "kibKbnDefaultNavAnalyticsPluginApi", - "section": "def-common.AnalyticsNodeDefinition", - "text": "AnalyticsNodeDefinition" - } - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets.$1", - "type": "string", - "tags": [], - "label": "preset", - "description": [], - "signature": [ - "\"analytics\"" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets", - "type": "Function", - "tags": [], - "label": "getPresets", - "description": [], - "signature": [ - "(preset: \"all\") => { analytics: ", - { - "pluginId": "@kbn/default-nav-analytics", - "scope": "common", - "docId": "kibKbnDefaultNavAnalyticsPluginApi", - "section": "def-common.AnalyticsNodeDefinition", - "text": "AnalyticsNodeDefinition" - }, - "; devtools: ", - { - "pluginId": "@kbn/default-nav-devtools", - "scope": "common", - "docId": "kibKbnDefaultNavDevtoolsPluginApi", - "section": "def-common.DevToolsNodeDefinition", - "text": "DevToolsNodeDefinition" - }, - "; ml: ", - { - "pluginId": "@kbn/default-nav-ml", - "scope": "common", - "docId": "kibKbnDefaultNavMlPluginApi", - "section": "def-common.MlNodeDefinition", - "text": "MlNodeDefinition" - }, - "; management: ", - { - "pluginId": "@kbn/default-nav-management", - "scope": "common", - "docId": "kibKbnDefaultNavManagementPluginApi", - "section": "def-common.ManagementNodeDefinition", - "text": "ManagementNodeDefinition" - }, - "; }" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets.$1", - "type": "string", - "tags": [], - "label": "preset", - "description": [], - "signature": [ - "\"all\"" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets", - "type": "Function", - "tags": [], - "label": "getPresets", - "description": [], - "signature": [ - "(preset: \"all\" | ", - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.NavigationGroupPreset", - "text": "NavigationGroupPreset" - }, - ") => ", - { - "pluginId": "@kbn/default-nav-analytics", - "scope": "common", - "docId": "kibKbnDefaultNavAnalyticsPluginApi", - "section": "def-common.AnalyticsNodeDefinition", - "text": "AnalyticsNodeDefinition" - }, - " | ", - { - "pluginId": "@kbn/default-nav-devtools", - "scope": "common", - "docId": "kibKbnDefaultNavDevtoolsPluginApi", - "section": "def-common.DevToolsNodeDefinition", - "text": "DevToolsNodeDefinition" - }, - " | ", - { - "pluginId": "@kbn/default-nav-management", - "scope": "common", - "docId": "kibKbnDefaultNavManagementPluginApi", - "section": "def-common.ManagementNodeDefinition", - "text": "ManagementNodeDefinition" - }, - " | ", - { - "pluginId": "@kbn/default-nav-ml", - "scope": "common", - "docId": "kibKbnDefaultNavMlPluginApi", - "section": "def-common.MlNodeDefinition", - "text": "MlNodeDefinition" - }, - " | { analytics: ", - { - "pluginId": "@kbn/default-nav-analytics", - "scope": "common", - "docId": "kibKbnDefaultNavAnalyticsPluginApi", - "section": "def-common.AnalyticsNodeDefinition", - "text": "AnalyticsNodeDefinition" - }, - "; devtools: ", - { - "pluginId": "@kbn/default-nav-devtools", - "scope": "common", - "docId": "kibKbnDefaultNavDevtoolsPluginApi", - "section": "def-common.DevToolsNodeDefinition", - "text": "DevToolsNodeDefinition" - }, - "; ml: ", - { - "pluginId": "@kbn/default-nav-ml", - "scope": "common", - "docId": "kibKbnDefaultNavMlPluginApi", - "section": "def-common.MlNodeDefinition", - "text": "MlNodeDefinition" - }, - "; management: ", - { - "pluginId": "@kbn/default-nav-management", - "scope": "common", - "docId": "kibKbnDefaultNavManagementPluginApi", - "section": "def-common.ManagementNodeDefinition", - "text": "ManagementNodeDefinition" - }, - "; }" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.getPresets.$1", - "type": "CompoundType", - "tags": [], - "label": "preset", - "description": [], - "signature": [ - "\"all\" | ", - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.NavigationGroupPreset", - "text": "NavigationGroupPreset" - } - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.Navigation", - "type": "Function", - "tags": [], - "label": "Navigation", - "description": [], - "signature": [ - "({\n children,\n panelContentProvider,\n unstyled = false,\n dataTestSubj,\n}: Props) => JSX.Element" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/components/navigation.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.Navigation.$1", - "type": "Object", - "tags": [], - "label": "{\n children,\n panelContentProvider,\n unstyled = false,\n dataTestSubj,\n}", - "description": [], - "signature": [ - "Props" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/components/navigation.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "@kbn/shared-ux-chrome-navigation", "id": "def-public.NavigationKibanaProvider", @@ -446,7 +68,13 @@ ], "signature": [ "({ children, ...dependencies }: React.PropsWithChildren<", - "NavigationKibanaDependencies", + { + "pluginId": "@kbn/shared-ux-chrome-navigation", + "scope": "public", + "docId": "kibKbnSharedUxChromeNavigationPluginApi", + "section": "def-public.NavigationKibanaDependencies", + "text": "NavigationKibanaDependencies" + }, ">) => JSX.Element" ], "path": "packages/shared-ux/chrome/navigation/src/services.tsx", @@ -462,7 +90,13 @@ "description": [], "signature": [ "React.PropsWithChildren<", - "NavigationKibanaDependencies", + { + "pluginId": "@kbn/shared-ux-chrome-navigation", + "scope": "public", + "docId": "kibKbnSharedUxChromeNavigationPluginApi", + "section": "def-public.NavigationKibanaDependencies", + "text": "NavigationKibanaDependencies" + }, ">" ], "path": "packages/shared-ux/chrome/navigation/src/services.tsx", @@ -529,111 +163,83 @@ "interfaces": [ { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.GroupDefinition", + "id": "def-public.NavigationKibanaDependencies", "type": "Interface", "tags": [], - "label": "GroupDefinition", - "description": [], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.GroupDefinition", - "text": "GroupDefinition" - }, - " extends Omit<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.NodeDefinition", - "text": "NodeDefinition" - }, - ", \"children\">" + "label": "NavigationKibanaDependencies", + "description": [ + "\nAn interface containing a collection of Kibana dependencies required to\nrender this component" ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.GroupDefinition.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"navGroup\"" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.GroupDefinition.children", - "type": "Array", + "id": "def-public.NavigationKibanaDependencies.core", + "type": "Object", "tags": [], - "label": "children", + "label": "core", "description": [], "signature": [ + "{ application: { navigateToUrl: (url: string, options?: ", + { + "pluginId": "@kbn/core-application-browser", + "scope": "common", + "docId": "kibKbnCoreApplicationBrowserPluginApi", + "section": "def-common.NavigateToUrlOptions", + "text": "NavigateToUrlOptions" + }, + " | undefined) => Promise; }; chrome: { recentlyAccessed: { get$: () => ", + "Observable", + "<", { "pluginId": "@kbn/core-chrome-browser", "scope": "common", "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.NodeDefinition", - "text": "NodeDefinition" + "section": "def-common.ChromeRecentlyAccessedHistoryItem", + "text": "ChromeRecentlyAccessedHistoryItem" }, - "[]" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.ItemDefinition", - "type": "Interface", - "tags": [], - "label": "ItemDefinition", - "description": [], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.ItemDefinition", - "text": "ItemDefinition" - }, - " extends Omit<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.NodeDefinition", - "text": "NodeDefinition" + "[]>; }; navLinks: { getNavLinks$: () => ", + "Observable", + "; }; getIsSideNavCollapsed$: () => ", + "Observable", + "; }; http: { basePath: BasePathService; getLoadingCount$(): ", + "Observable", + "; }; }" + ], + "path": "packages/shared-ux/chrome/navigation/src/types.ts", + "deprecated": false, + "trackAdoption": false }, - ", \"children\">" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.ItemDefinition.type", - "type": "string", + "id": "def-public.NavigationKibanaDependencies.activeNodes$", + "type": "Object", "tags": [], - "label": "type", + "label": "activeNodes$", "description": [], "signature": [ - "\"navItem\"" + "Observable", + "<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeProjectNavigationNode", + "text": "ChromeProjectNavigationNode" + }, + "[][]>" ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -649,7 +255,7 @@ "description": [ "\nA list of services that are consumed by this component." ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -663,7 +269,7 @@ "signature": [ "{ prepend: (url: string) => string; }" ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -677,33 +283,16 @@ "signature": [ "Observable", "<", - "RecentItem", - "[]>" - ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.NavigationServices.deepLinks$", - "type": "Object", - "tags": [], - "label": "deepLinks$", - "description": [], - "signature": [ - "Observable", - ">>" + "[]>" ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -714,7 +303,7 @@ "tags": [], "label": "navIsOpen", "description": [], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -736,7 +325,7 @@ }, " | undefined) => Promise" ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false, "returnComment": [], @@ -775,52 +364,6 @@ } ] }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.NavigationServices.onProjectNavigationChange", - "type": "Function", - "tags": [], - "label": "onProjectNavigationChange", - "description": [], - "signature": [ - "(chromeProjectNavigation: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeProjectNavigation", - "text": "ChromeProjectNavigation" - }, - ") => void" - ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.NavigationServices.onProjectNavigationChange.$1", - "type": "Object", - "tags": [], - "label": "chromeProjectNavigation", - "description": [], - "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeProjectNavigation", - "text": "ChromeProjectNavigation" - } - ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [] - }, { "parentPluginId": "@kbn/shared-ux-chrome-navigation", "id": "def-public.NavigationServices.activeNodes$", @@ -840,29 +383,7 @@ }, "[][]>" ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.NavigationServices.cloudLinks", - "type": "Object", - "tags": [], - "label": "cloudLinks", - "description": [], - "signature": [ - "{ userAndRoles?: ", - "CloudLink", - " | undefined; performance?: ", - "CloudLink", - " | undefined; billingAndSub?: ", - "CloudLink", - " | undefined; deployment?: ", - "CloudLink", - " | undefined; }" - ], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false }, @@ -873,77 +394,7 @@ "tags": [], "label": "isSideNavCollapsed", "description": [], - "path": "packages/shared-ux/chrome/navigation/types/index.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.NavigationTreeDefinition", - "type": "Interface", - "tags": [], - "label": "NavigationTreeDefinition", - "description": [], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.NavigationTreeDefinition", - "text": "NavigationTreeDefinition" - }, - "" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.NavigationTreeDefinition.body", - "type": "Array", - "tags": [], - "label": "body", - "description": [ - "\nMain content of the navigation. Can contain any number of \"cloudLink\", \"recentlyAccessed\"\nor \"group\" items. Be mindeful though, with great power comes great responsibility." - ], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.RootNavigationItemDefinition", - "text": "RootNavigationItemDefinition" - }, - "[] | undefined" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.NavigationTreeDefinition.footer", - "type": "Array", - "tags": [], - "label": "footer", - "description": [ - "\nFooter content of the navigation. Can contain any number of \"cloudLink\", \"recentlyAccessed\"\nor \"group\" items. Be mindeful though, with great power comes great responsibility." - ], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.RootNavigationItemDefinition", - "text": "RootNavigationItemDefinition" - }, - "[] | undefined" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", + "path": "packages/shared-ux/chrome/navigation/src/types.ts", "deprecated": false, "trackAdoption": false } @@ -1081,161 +532,70 @@ }, { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.PresetDefinition", + "id": "def-public.Props", "type": "Interface", "tags": [], - "label": "PresetDefinition", + "label": "Props", "description": [], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.PresetDefinition", - "text": "PresetDefinition" - }, - " extends Omit<", - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.GroupDefinition", - "text": "GroupDefinition" - }, - ", \"type\" | \"children\">" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", + "path": "packages/shared-ux/chrome/navigation/src/ui/navigation.tsx", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.PresetDefinition.type", - "type": "string", + "id": "def-public.Props.navigationTree$", + "type": "Object", "tags": [], - "label": "type", + "label": "navigationTree$", "description": [], "signature": [ - "\"preset\"" + "Observable", + "<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.NavigationTreeDefinitionUI", + "text": "NavigationTreeDefinitionUI" + }, + ">" ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", + "path": "packages/shared-ux/chrome/navigation/src/ui/navigation.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.PresetDefinition.preset", - "type": "CompoundType", + "id": "def-public.Props.dataTestSubj", + "type": "string", "tags": [], - "label": "preset", + "label": "dataTestSubj", "description": [], "signature": [ - "\"ml\" | \"management\" | \"analytics\" | \"devtools\"" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.ProjectNavigationDefinition", - "type": "Interface", - "tags": [], - "label": "ProjectNavigationDefinition", - "description": [], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.ProjectNavigationDefinition", - "text": "ProjectNavigationDefinition" - }, - "" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.ProjectNavigationDefinition.projectNavigationTree", - "type": "Array", - "tags": [], - "label": "projectNavigationTree", - "description": [ - "\nA navigation tree structure with object items containing labels, links, and sub-items\nfor a project. Use it if you only need to configure your project navigation and leave\nall the other navigation items to the default (Recently viewed items, Management, etc.)" - ], - "signature": [ - "ProjectNavigationTreeDefinition", - " | undefined" + "string | undefined" ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", + "path": "packages/shared-ux/chrome/navigation/src/ui/navigation.tsx", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.ProjectNavigationDefinition.navigationTree", - "type": "Object", + "id": "def-public.Props.panelContentProvider", + "type": "Function", "tags": [], - "label": "navigationTree", - "description": [ - "\nA navigation tree structure with object items containing labels, links, and sub-items\nthat defines a complete side navigation. This configuration overrides `projectNavigationTree`\nif both are provided." - ], + "label": "panelContentProvider", + "description": [], "signature": [ { "pluginId": "@kbn/shared-ux-chrome-navigation", "scope": "public", "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.NavigationTreeDefinition", - "text": "NavigationTreeDefinition" + "section": "def-public.ContentProvider", + "text": "ContentProvider" }, - " | undefined" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false - } - ], - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.RecentlyAccessedDefinition", - "type": "Interface", - "tags": [], - "label": "RecentlyAccessedDefinition", - "description": [], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.RecentlyAccessedDefinition", - "text": "RecentlyAccessedDefinition" - }, - " extends ", - "Props" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.RecentlyAccessedDefinition.type", - "type": "string", - "tags": [], - "label": "type", - "description": [], - "signature": [ - "\"recentlyAccessed\"" + " | undefined" ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", + "path": "packages/shared-ux/chrome/navigation/src/ui/navigation.tsx", "deprecated": false, "trackAdoption": false } @@ -1280,69 +640,6 @@ } ], "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.NavigationGroupPreset", - "type": "Type", - "tags": [], - "label": "NavigationGroupPreset", - "description": [ - "The preset that can be pass to the NavigationBucket component" - ], - "signature": [ - "\"ml\" | \"management\" | \"analytics\" | \"devtools\"" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "@kbn/shared-ux-chrome-navigation", - "id": "def-public.RootNavigationItemDefinition", - "type": "Type", - "tags": [], - "label": "RootNavigationItemDefinition", - "description": [], - "signature": [ - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.RecentlyAccessedDefinition", - "text": "RecentlyAccessedDefinition" - }, - " | ", - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.GroupDefinition", - "text": "GroupDefinition" - }, - " | ", - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.PresetDefinition", - "text": "PresetDefinition" - }, - " | ", - { - "pluginId": "@kbn/shared-ux-chrome-navigation", - "scope": "public", - "docId": "kibKbnSharedUxChromeNavigationPluginApi", - "section": "def-public.ItemDefinition", - "text": "ItemDefinition" - }, - "" - ], - "path": "packages/shared-ux/chrome/navigation/src/ui/types.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false } ], "objects": [] diff --git a/api_docs/kbn_shared_ux_chrome_navigation.mdx b/api_docs/kbn_shared_ux_chrome_navigation.mdx index bc6f88412940d..6ad4c3b657c85 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-chrome-navigation'] --- import kbnSharedUxChromeNavigationObj from './kbn_shared_ux_chrome_navigation.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 | |-------------------|-----------|------------------------|-----------------| -| 61 | 0 | 48 | 5 | +| 32 | 0 | 23 | 0 | ## Client diff --git a/api_docs/kbn_shared_ux_error_boundary.mdx b/api_docs/kbn_shared_ux_error_boundary.mdx index 54073921400a3..e13bf7207dd0b 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-01-04 +date: 2024-01-25 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 bc71b9ad9324d..07587445a3a78 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-01-04 +date: 2024-01-25 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 5bf4b8888bcf7..79fb9021d2c1e 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-01-04 +date: 2024-01-25 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 b0657728c183f..0cf1ee3553e75 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-01-04 +date: 2024-01-25 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 a3c5b0c967b45..e345fe4f84a06 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-01-04 +date: 2024-01-25 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 f4a8ac64778b2..246c44321f55a 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-01-04 +date: 2024-01-25 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 5a36f4e70f4b7..49cc812cb717f 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-01-04 +date: 2024-01-25 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 214d49cacc56c..bc92dcc3f29fc 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-01-04 +date: 2024-01-25 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 55a174557b7ba..e82619c5592ea 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-01-04 +date: 2024-01-25 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 dfd6ed1999a23..a44a55fbe4ee3 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-01-04 +date: 2024-01-25 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 8352f4b366f71..de1cea4aa0b12 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-01-04 +date: 2024-01-25 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 099046c2f5f2d..d2397c027429d 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-01-04 +date: 2024-01-25 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 99d0a0fe58b55..dde26ee52e5bf 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_shared_ux_page_analytics_no_data.devdocs.json index 8adf2b60d76c9..cf6703bbdd7bb 100644 --- a/api_docs/kbn_shared_ux_page_analytics_no_data.devdocs.json +++ b/api_docs/kbn_shared_ux_page_analytics_no_data.devdocs.json @@ -50,9 +50,7 @@ "\nA pure component of an entire page that can be displayed when Kibana \"has no data\", specifically for Analytics." ], "signature": [ - "({ kibanaGuideDocLink, onDataViewCreated, allowAdHocDataView, showPlainSpinner, prependBasePath, pageFlavor, }: ", - "Props", - ") => JSX.Element" + "({ onDataViewCreated, allowAdHocDataView, showPlainSpinner, ...services }: React.PropsWithChildren) => JSX.Element" ], "path": "packages/shared-ux/page/analytics_no_data/impl/src/analytics_no_data_page.component.tsx", "deprecated": false, @@ -61,12 +59,12 @@ { "parentPluginId": "@kbn/shared-ux-page-analytics-no-data", "id": "def-public.AnalyticsNoDataPage.$1", - "type": "Object", + "type": "CompoundType", "tags": [], - "label": "{\n kibanaGuideDocLink,\n onDataViewCreated,\n allowAdHocDataView,\n showPlainSpinner,\n prependBasePath,\n pageFlavor = 'kibana',\n}", + "label": "{\n onDataViewCreated,\n allowAdHocDataView,\n showPlainSpinner,\n ...services\n}", "description": [], "signature": [ - "Props" + "React.PropsWithChildren" ], "path": "packages/shared-ux/page/analytics_no_data/impl/src/analytics_no_data_page.component.tsx", "deprecated": false, @@ -154,6 +152,69 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/shared-ux-page-analytics-no-data", + "id": "def-public.getHasApiKeys$", + "type": "Function", + "tags": [], + "label": "getHasApiKeys$", + "description": [], + "signature": [ + "({ get, }: { get: (path: string) => Promise; }) => ", + "Observable", + "<", + "HasApiKeysResponse", + ">" + ], + "path": "packages/shared-ux/page/analytics_no_data/impl/lib/get_has_api_keys.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/shared-ux-page-analytics-no-data", + "id": "def-public.getHasApiKeys$.$1", + "type": "Object", + "tags": [], + "label": "{\n get,\n}", + "description": [], + "path": "packages/shared-ux/page/analytics_no_data/impl/lib/get_has_api_keys.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/shared-ux-page-analytics-no-data", + "id": "def-public.getHasApiKeys$.$1.get", + "type": "Function", + "tags": [], + "label": "get", + "description": [], + "signature": [ + "(path: string) => Promise" + ], + "path": "packages/shared-ux/page/analytics_no_data/impl/lib/get_has_api_keys.ts", + "deprecated": false, + "trackAdoption": false, + "returnComment": [], + "children": [ + { + "parentPluginId": "@kbn/shared-ux-page-analytics-no-data", + "id": "def-public.getHasApiKeys$.$1.get.$1", + "type": "string", + "tags": [], + "label": "path", + "description": [], + "path": "packages/shared-ux/page/analytics_no_data/types/index.d.ts", + "deprecated": false, + "trackAdoption": false + } + ] + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false } ], "interfaces": [ 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 93d84a4d60904..d4eebdc97e225 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-page-analytics-no-data'] --- import kbnSharedUxPageAnalyticsNoDataObj from './kbn_shared_ux_page_analytics_no_data.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 | |-------------------|-----------|------------------------|-----------------| -| 14 | 0 | 5 | 1 | +| 18 | 0 | 9 | 1 | ## Client 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 b7b893d353ce1..67484ba972193 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-01-04 +date: 2024-01-25 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 b2e2082bf682c..9c909022f2180 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-01-04 +date: 2024-01-25 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 7886c18d6e140..f7df3a57603ae 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-01-04 +date: 2024-01-25 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 6a5df38fdb42b..77ee22dd819e1 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-01-04 +date: 2024-01-25 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 cfc33d1476587..6128dd905b56c 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-01-04 +date: 2024-01-25 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 9039fd3d9ddad..fed7ec43a3976 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-01-04 +date: 2024-01-25 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 6b510fb7bb1d7..323e722a52b26 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-01-04 +date: 2024-01-25 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 f71530cb9c8ea..c2b19eb6ed444 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-01-04 +date: 2024-01-25 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 538aa87c13941..725e7e7971dd5 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-01-04 +date: 2024-01-25 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 40b76ca9599e6..8d2b1e8dd27a5 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json index 071772e1a1780..b45b0685c9896 100644 --- a/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json +++ b/api_docs/kbn_shared_ux_prompt_no_data_views.devdocs.json @@ -3,6 +3,23 @@ "client": { "classes": [], "functions": [ + { + "parentPluginId": "@kbn/shared-ux-prompt-no-data-views", + "id": "def-public.DataViewIllustration", + "type": "Function", + "tags": [], + "label": "DataViewIllustration", + "description": [], + "signature": [ + "() => JSX.Element" + ], + "path": "packages/shared-ux/prompt/no_data_views/impl/src/data_view_illustration.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/shared-ux-prompt-no-data-views", "id": "def-public.NoDataViewsPrompt", 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 b5c76b7869f4a..5a707fb5b292a 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-prompt-no-data-views'] --- import kbnSharedUxPromptNoDataViewsObj from './kbn_shared_ux_prompt_no_data_views.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 | |-------------------|-----------|------------------------|-----------------| -| 25 | 0 | 10 | 0 | +| 26 | 0 | 11 | 0 | ## Client 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 40ea019a88d4e..a4090c3abdd3b 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-01-04 +date: 2024-01-25 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 38f5104395b42..c9b6761f60317 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-01-04 +date: 2024-01-25 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 339bdfe6f8a4f..921fca4769cd2 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-01-04 +date: 2024-01-25 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 7389373f01590..b4232554d6ea9 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-01-04 +date: 2024-01-25 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 f791535672973..0536992a65f6b 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-01-04 +date: 2024-01-25 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 3f305dba05a87..5187836d2dca4 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-01-04 +date: 2024-01-25 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_utility.mdx b/api_docs/kbn_shared_ux_utility.mdx index 6eefeea597adf..ce89be2890695 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/shared-ux-utility'] --- import kbnSharedUxUtilityObj from './kbn_shared_ux_utility.devdocs.json'; diff --git a/api_docs/kbn_slo_schema.devdocs.json b/api_docs/kbn_slo_schema.devdocs.json index bd1f6fc99dc21..2353ee0fc18cd 100644 --- a/api_docs/kbn_slo_schema.devdocs.json +++ b/api_docs/kbn_slo_schema.devdocs.json @@ -765,7 +765,7 @@ "label": "FindSLOParams", "description": [], "signature": [ - "{ kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; }" + "{ filters?: string | undefined; kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; }" ], "path": "x-pack/packages/kbn-slo-schema/src/rest_specs/slo.ts", "deprecated": false, @@ -2599,7 +2599,9 @@ "PartialC", "<{ query: ", "PartialC", - "<{ kqlQuery: ", + "<{ filters: ", + "StringC", + "; kqlQuery: ", "StringC", "; page: ", "StringC", diff --git a/api_docs/kbn_slo_schema.mdx b/api_docs/kbn_slo_schema.mdx index ebc02e018b762..b6c929baa3a58 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-01-04 +date: 2024-01-25 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 4e4bcfdef739e..8c58fc205ea71 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_sort_predicates.devdocs.json new file mode 100644 index 0000000000000..12e85f26183af --- /dev/null +++ b/api_docs/kbn_sort_predicates.devdocs.json @@ -0,0 +1,105 @@ +{ + "id": "@kbn/sort-predicates", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [ + { + "parentPluginId": "@kbn/sort-predicates", + "id": "def-common.getSortingCriteria", + "type": "Function", + "tags": [], + "label": "getSortingCriteria", + "description": [], + "signature": [ + "(type: string | undefined, sortBy: string, formatter: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + }, + ") => (rowA: Record, rowB: Record, direction: \"asc\" | \"desc\") => number" + ], + "path": "packages/kbn-sort-predicates/src/sorting.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/sort-predicates", + "id": "def-common.getSortingCriteria.$1", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "packages/kbn-sort-predicates/src/sorting.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + }, + { + "parentPluginId": "@kbn/sort-predicates", + "id": "def-common.getSortingCriteria.$2", + "type": "string", + "tags": [], + "label": "sortBy", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-sort-predicates/src/sorting.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "@kbn/sort-predicates", + "id": "def-common.getSortingCriteria.$3", + "type": "Object", + "tags": [], + "label": "formatter", + "description": [], + "signature": [ + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormat", + "text": "FieldFormat" + } + ], + "path": "packages/kbn-sort-predicates/src/sorting.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_sort_predicates.mdx b/api_docs/kbn_sort_predicates.mdx new file mode 100644 index 0000000000000..dcbb288d98787 --- /dev/null +++ b/api_docs/kbn_sort_predicates.mdx @@ -0,0 +1,30 @@ +--- +#### +#### 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: kibKbnSortPredicatesPluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/sort-predicates'] +--- +import kbnSortPredicatesObj from './kbn_sort_predicates.devdocs.json'; + + + +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 4 | 0 | 4 | 0 | + +## Common + +### Functions + + diff --git a/api_docs/kbn_std.mdx b/api_docs/kbn_std.mdx index e41f4e72b5f45..a7ed3a4fc28aa 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-01-04 +date: 2024-01-25 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 a59d24d575dd9..08b003eeb4f6c 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-01-04 +date: 2024-01-25 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 463a6ccd8e6b4..d24c526347c5e 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/storybook'] --- import kbnStorybookObj from './kbn_storybook.devdocs.json'; diff --git a/api_docs/kbn_telemetry_tools.mdx b/api_docs/kbn_telemetry_tools.mdx index d017bcc4387d9..6debbea5a9bd8 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/telemetry-tools'] --- import kbnTelemetryToolsObj from './kbn_telemetry_tools.devdocs.json'; diff --git a/api_docs/kbn_test.devdocs.json b/api_docs/kbn_test.devdocs.json index 5b01c5762fe46..52c770e714075 100644 --- a/api_docs/kbn_test.devdocs.json +++ b/api_docs/kbn_test.devdocs.json @@ -2548,6 +2548,39 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "@kbn/test", + "id": "def-common.readRolesFromResource", + "type": "Function", + "tags": [], + "label": "readRolesFromResource", + "description": [], + "signature": [ + "(resourcePath: string) => string[]" + ], + "path": "packages/kbn-test/src/auth/helper.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/test", + "id": "def-common.readRolesFromResource.$1", + "type": "string", + "tags": [], + "label": "resourcePath", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-test/src/auth/helper.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/test", "id": "def-common.runCheckFtrCodeOwnersCli", @@ -3303,7 +3336,7 @@ "signature": [ "Pick<", "ServerlessOptions", - ", \"host\" | \"tag\" | \"image\" | \"resources\" | \"kibanaUrl\"> | undefined" + ", \"image\" | \"host\" | \"tag\" | \"resources\" | \"kibanaUrl\" | \"projectType\"> | undefined" ], "path": "packages/kbn-test/src/es/test_es_cluster.ts", "deprecated": false, @@ -5025,6 +5058,20 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/test", + "id": "def-common.SamlSessionManagerOptions.supportedRoles", + "type": "Array", + "tags": [], + "label": "supportedRoles", + "description": [], + "signature": [ + "string[] | undefined" + ], + "path": "packages/kbn-test/src/auth/session_manager.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/test", "id": "def-common.SamlSessionManagerOptions.log", diff --git a/api_docs/kbn_test.mdx b/api_docs/kbn_test.mdx index dbc578273baf9..da60030123529 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test'] --- import kbnTestObj from './kbn_test.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 | |-------------------|-----------|------------------------|-----------------| -| 311 | 4 | 263 | 12 | +| 314 | 4 | 266 | 12 | ## Common diff --git a/api_docs/kbn_test_eui_helpers.devdocs.json b/api_docs/kbn_test_eui_helpers.devdocs.json new file mode 100644 index 0000000000000..d0b5f32517d7c --- /dev/null +++ b/api_docs/kbn_test_eui_helpers.devdocs.json @@ -0,0 +1,244 @@ +{ + "id": "@kbn/test-eui-helpers", + "client": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [ + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness", + "type": "Class", + "tags": [], + "label": "EuiSuperDatePickerTestHarness", + "description": [], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.currentCommonlyUsedRange", + "type": "string", + "tags": [], + "label": "currentCommonlyUsedRange", + "description": [ + "\nThis method returns the currently selected commonly-used range as a string\n\nThe empty string is returned if a commonly-used range is not currently selected" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.currentRange", + "type": "Object", + "tags": [], + "label": "currentRange", + "description": [ + "\nThis method returns the currently selected range as a pair of strings" + ], + "signature": [ + "{ from: string | null; to: string | null; }" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.assertCurrentRange", + "type": "Function", + "tags": [], + "label": "assertCurrentRange", + "description": [ + "\nThis method runs an assertion against the currently selected range using\nUNIX timestamps.\n\nNOTE: it does not (yet) support commonly-used (textual) ranges like \"Last 15 minutes\"" + ], + "signature": [ + "(range: { from: number; to: number; }, expect: jest.Expect) => void" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.assertCurrentRange.$1", + "type": "Object", + "tags": [], + "label": "range", + "description": [], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.assertCurrentRange.$1.from", + "type": "number", + "tags": [], + "label": "from", + "description": [], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.assertCurrentRange.$1.to", + "type": "number", + "tags": [], + "label": "to", + "description": [], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false + } + ] + }, + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.assertCurrentRange.$2", + "type": "Function", + "tags": [], + "label": "expect", + "description": [], + "signature": [ + "jest.Expect" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.togglePopover", + "type": "Function", + "tags": [], + "label": "togglePopover", + "description": [ + "\nOpens the popover for the date picker" + ], + "signature": [ + "() => void" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.selectCommonlyUsedRange", + "type": "Function", + "tags": [], + "label": "selectCommonlyUsedRange", + "description": [ + "\nSelects a commonly-used range from the date picker (opens the popover if it's not already open)" + ], + "signature": [ + "(label: string) => Promise" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.selectCommonlyUsedRange.$1", + "type": "string", + "tags": [], + "label": "label", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.EuiSuperDatePickerTestHarness.refresh", + "type": "Function", + "tags": [], + "label": "refresh", + "description": [ + "\nActivates the refresh button" + ], + "signature": [ + "() => void" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + } + ], + "initialIsOpen": false + } + ], + "functions": [ + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.getButtonGroupInputValue", + "type": "Function", + "tags": [], + "label": "getButtonGroupInputValue", + "description": [], + "signature": [ + "(testId: string) => () => HTMLElement" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/test-eui-helpers", + "id": "def-common.getButtonGroupInputValue.$1", + "type": "string", + "tags": [], + "label": "testId", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-test-eui-helpers/src/rtl_helpers.tsx", + "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_test_eui_helpers.mdx b/api_docs/kbn_test_eui_helpers.mdx new file mode 100644 index 0000000000000..0c094ab2af236 --- /dev/null +++ b/api_docs/kbn_test_eui_helpers.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: kibKbnTestEuiHelpersPluginApi +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-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/test-eui-helpers'] +--- +import kbnTestEuiHelpersObj from './kbn_test_eui_helpers.devdocs.json'; + + + +Contact [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) for questions regarding this plugin. + +**Code health stats** + +| Public API count | Any count | Items lacking comments | Missing exports | +|-------------------|-----------|------------------------|-----------------| +| 14 | 0 | 8 | 0 | + +## Common + +### Functions + + +### Classes + + diff --git a/api_docs/kbn_test_jest_helpers.mdx b/api_docs/kbn_test_jest_helpers.mdx index 90ad352d24301..3d18dc3aef58c 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-01-04 +date: 2024-01-25 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 d2a83bfeb5823..b2b7b41baed6f 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-01-04 +date: 2024-01-25 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 6fbbedbb4060e..8cdd3e4080afa 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/text-based-editor'] --- import kbnTextBasedEditorObj from './kbn_text_based_editor.devdocs.json'; diff --git a/api_docs/kbn_tooling_log.mdx b/api_docs/kbn_tooling_log.mdx index 8394bd0a1bedd..a90913354ec33 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/tooling-log'] --- import kbnToolingLogObj from './kbn_tooling_log.devdocs.json'; diff --git a/api_docs/kbn_triggers_actions_ui_types.mdx b/api_docs/kbn_triggers_actions_ui_types.mdx index 588370be25ebd..82012246021c0 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-01-04 +date: 2024-01-25 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_ts_projects.mdx b/api_docs/kbn_ts_projects.mdx index a6f14944025e9..619a80985bbe8 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_typed_react_router_config.devdocs.json index 74b7cafd564c3..7094744ed6aa5 100644 --- a/api_docs/kbn_typed_react_router_config.devdocs.json +++ b/api_docs/kbn_typed_react_router_config.devdocs.json @@ -811,7 +811,7 @@ "label": "pre", "description": [], "signature": [ - "React.ReactElement | undefined" + "React.ReactElement> | undefined" ], "path": "packages/kbn-typed-react-router-config/src/types/index.ts", "deprecated": false, diff --git a/api_docs/kbn_typed_react_router_config.mdx b/api_docs/kbn_typed_react_router_config.mdx index a98d6266b66b0..e921b89c724b5 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-01-04 +date: 2024-01-25 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 46ba6f2227f30..6eba72619cffd 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_ui_shared_deps_src.devdocs.json index 43ebafeb195cf..28d0d05e41462 100644 --- a/api_docs/kbn_ui_shared_deps_src.devdocs.json +++ b/api_docs/kbn_ui_shared_deps_src.devdocs.json @@ -644,6 +644,17 @@ "path": "packages/kbn-ui-shared-deps-src/src/definitions.js", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/ui-shared-deps-src", + "id": "def-common.externals.kbncodeeditor", + "type": "string", + "tags": [], + "label": "'@kbn/code-editor'", + "description": [], + "path": "packages/kbn-ui-shared-deps-src/src/definitions.js", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/kbn_ui_shared_deps_src.mdx b/api_docs/kbn_ui_shared_deps_src.mdx index 01f1a1b95e1f8..359b9aa538f4d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/ui-shared-deps-src'] --- import kbnUiSharedDepsSrcObj from './kbn_ui_shared_deps_src.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 | |-------------------|-----------|------------------------|-----------------| -| 54 | 0 | 45 | 0 | +| 55 | 0 | 46 | 0 | ## Common diff --git a/api_docs/kbn_ui_theme.mdx b/api_docs/kbn_ui_theme.mdx index 2054df010326b..dd1d9af03f84e 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-01-04 +date: 2024-01-25 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 9f0345f26bad8..d6e88999bd256 100644 --- a/api_docs/kbn_unified_data_table.devdocs.json +++ b/api_docs/kbn_unified_data_table.devdocs.json @@ -326,7 +326,7 @@ "label": "UnifiedDataTable", "description": [], "signature": [ - "({ ariaLabelledBy, columns, columnTypes, showColumnTokens, controlColumnIds, 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, trailingControlColumns, totalHits, onFetchMoreRecords, renderDocumentView, setExpandedDoc, expandedDoc, configRowHeight, showMultiFields, maxDocFieldsDisplayed, externalControlColumns, externalAdditionalControls, rowsPerPageOptions, visibleCellActions, externalCustomRenderers, consumer, componentsTourSteps, gridStyleOverride, rowLineHeightOverride, }: ", + "({ ariaLabelledBy, columns, columnTypes, showColumnTokens, headerRowHeight, controlColumnIds, 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, trailingControlColumns, totalHits, onFetchMoreRecords, renderDocumentView, setExpandedDoc, expandedDoc, configRowHeight, showMultiFields, maxDocFieldsDisplayed, externalControlColumns, externalAdditionalControls, rowsPerPageOptions, visibleCellActions, externalCustomRenderers, consumer, componentsTourSteps, gridStyleOverride, rowLineHeightOverride, customGridColumnsConfiguration, }: ", { "pluginId": "@kbn/unified-data-table", "scope": "common", @@ -345,7 +345,7 @@ "id": "def-common.UnifiedDataTable.$1", "type": "Object", "tags": [], - "label": "{\n ariaLabelledBy,\n columns,\n columnTypes,\n showColumnTokens,\n controlColumnIds = CONTROL_COLUMN_IDS_DEFAULT,\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 trailingControlColumns,\n totalHits,\n onFetchMoreRecords,\n renderDocumentView,\n setExpandedDoc,\n expandedDoc,\n configRowHeight,\n showMultiFields = true,\n maxDocFieldsDisplayed = 50,\n externalControlColumns,\n externalAdditionalControls,\n rowsPerPageOptions,\n visibleCellActions,\n externalCustomRenderers,\n consumer = 'discover',\n componentsTourSteps,\n gridStyleOverride,\n rowLineHeightOverride,\n}", + "label": "{\n ariaLabelledBy,\n columns,\n columnTypes,\n showColumnTokens,\n headerRowHeight,\n controlColumnIds = CONTROL_COLUMN_IDS_DEFAULT,\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 trailingControlColumns,\n totalHits,\n onFetchMoreRecords,\n renderDocumentView,\n setExpandedDoc,\n expandedDoc,\n configRowHeight,\n showMultiFields = true,\n maxDocFieldsDisplayed = 50,\n externalControlColumns,\n externalAdditionalControls,\n rowsPerPageOptions,\n visibleCellActions,\n externalCustomRenderers,\n consumer = 'discover',\n componentsTourSteps,\n gridStyleOverride,\n rowLineHeightOverride,\n customGridColumnsConfiguration,\n}", "description": [], "signature": [ { @@ -400,6 +400,48 @@ } ], "interfaces": [ + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-common.CustomGridColumnProps", + "type": "Interface", + "tags": [], + "label": "CustomGridColumnProps", + "description": [], + "path": "packages/kbn-unified-data-table/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-common.CustomGridColumnProps.column", + "type": "Object", + "tags": [], + "label": "column", + "description": [], + "signature": [ + "EuiDataGridColumn" + ], + "path": "packages/kbn-unified-data-table/src/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-common.CustomGridColumnProps.headerRowHeight", + "type": "number", + "tags": [], + "label": "headerRowHeight", + "description": [], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-unified-data-table/src/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "@kbn/unified-data-table", "id": "def-common.UnifiedDataTableProps", @@ -497,6 +539,22 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-common.UnifiedDataTableProps.headerRowHeight", + "type": "number", + "tags": [], + "label": "headerRowHeight", + "description": [ + "\nDetermines number of rows of a column header" + ], + "signature": [ + "number | undefined" + ], + "path": "packages/kbn-unified-data-table/src/components/data_table.tsx", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/unified-data-table", "id": "def-common.UnifiedDataTableProps.expandedDoc", @@ -1593,9 +1651,37 @@ "\nAn optional settings for a specified fields rendering like links. Applied only for the listed fields rendering." ], "signature": [ - "Record React.ReactNode> | undefined" + { + "pluginId": "@kbn/unified-data-table", + "scope": "common", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-common.CustomCellRenderer", + "text": "CustomCellRenderer" + }, + " | undefined" + ], + "path": "packages/kbn-unified-data-table/src/components/data_table.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-common.UnifiedDataTableProps.customGridColumnsConfiguration", + "type": "Object", + "tags": [], + "label": "customGridColumnsConfiguration", + "description": [ + "\nAn optional settings for customising the column" + ], + "signature": [ + { + "pluginId": "@kbn/unified-data-table", + "scope": "common", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-common.CustomGridColumnsConfiguration", + "text": "CustomGridColumnsConfiguration" + }, + " | undefined" ], "path": "packages/kbn-unified-data-table/src/components/data_table.tsx", "deprecated": false, @@ -1795,6 +1881,88 @@ } ], "misc": [ + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-common.CustomCellRenderer", + "type": "Type", + "tags": [], + "label": "CustomCellRenderer", + "description": [], + "signature": [ + "{ [x: string]: (props: ", + { + "pluginId": "@kbn/unified-data-table", + "scope": "common", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-common.DataGridCellValueElementProps", + "text": "DataGridCellValueElementProps" + }, + ") => React.ReactNode; }" + ], + "path": "packages/kbn-unified-data-table/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-common.CustomGridColumnsConfiguration", + "type": "Type", + "tags": [], + "label": "CustomGridColumnsConfiguration", + "description": [], + "signature": [ + "{ [x: string]: (props: ", + { + "pluginId": "@kbn/unified-data-table", + "scope": "common", + "docId": "kibKbnUnifiedDataTablePluginApi", + "section": "def-common.CustomGridColumnProps", + "text": "CustomGridColumnProps" + }, + ") => ", + "EuiDataGridColumn", + "; }" + ], + "path": "packages/kbn-unified-data-table/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "@kbn/unified-data-table", + "id": "def-common.DataGridCellValueElementProps", + "type": "Type", + "tags": [], + "label": "DataGridCellValueElementProps", + "description": [], + "signature": [ + "EuiDataGridCellValueElementProps", + " & { row: ", + "DataTableRecord", + "; dataView: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "; fieldFormats: ", + { + "pluginId": "fieldFormats", + "scope": "public", + "docId": "kibFieldFormatsPluginApi", + "section": "def-public.FieldFormatsStart", + "text": "FieldFormatsStart" + }, + "; closePopover: () => void; }" + ], + "path": "packages/kbn-unified-data-table/src/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "@kbn/unified-data-table", "id": "def-common.DataTableColumnTypes", diff --git a/api_docs/kbn_unified_data_table.mdx b/api_docs/kbn_unified_data_table.mdx index 32098ef443509..d3332726f24c9 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 109 | 0 | 49 | 1 | +| 117 | 0 | 55 | 1 | ## Common diff --git a/api_docs/kbn_unified_doc_viewer.mdx b/api_docs/kbn_unified_doc_viewer.mdx index 99b430eb56fc9..a61ac388ee0e4 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-01-04 +date: 2024-01-25 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.devdocs.json b/api_docs/kbn_unified_field_list.devdocs.json index 1f322e1c28603..c1c79b0bb046e 100644 --- a/api_docs/kbn_unified_field_list.devdocs.json +++ b/api_docs/kbn_unified_field_list.devdocs.json @@ -883,7 +883,15 @@ "label": "loadFieldExisting", "description": [], "signature": [ - "(params: FetchFieldExistenceParams) => Promise<{ existingFieldNames: string[]; indexPatternTitle: string; }>" + "(params: FetchFieldExistenceParams) => Promise<{ existingFieldNames: string[]; indexPatternTitle: string; newFields?: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[] | undefined; }>" ], "path": "packages/kbn-unified-field-list/src/services/field_existing/index.ts", "deprecated": false, @@ -1403,7 +1411,15 @@ "section": "def-common.ExistenceFetchStatus", "text": "ExistenceFetchStatus" }, - "; isFieldsExistenceInfoUnavailable: (dataViewId: string) => boolean; }" + "; isFieldsExistenceInfoUnavailable: (dataViewId: string) => boolean; getNewFields: (dataViewId: string) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]; }" ], "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts", "deprecated": false, @@ -1478,7 +1494,7 @@ "label": "useGroupedFields", "description": [], "signature": [ - "({\n dataViewId,\n allFields,\n services,\n isAffectedByGlobalFilter = false,\n popularFieldsLimit,\n sortedSelectedFields,\n getCustomFieldType,\n onOverrideFieldGroupDetails,\n onSupportedFieldFilter,\n onSelectedFieldFilter,\n}: ", + "({\n dataViewId,\n allFields,\n services,\n isAffectedByGlobalFilter = false,\n popularFieldsLimit,\n sortedSelectedFields,\n getCustomFieldType,\n onOverrideFieldGroupDetails,\n onSupportedFieldFilter,\n onSelectedFieldFilter,\n getNewFieldsBySpec,\n}: ", { "pluginId": "@kbn/unified-field-list", "scope": "common", @@ -1505,7 +1521,7 @@ "id": "def-common.useGroupedFields.$1", "type": "Object", "tags": [], - "label": "{\n dataViewId,\n allFields,\n services,\n isAffectedByGlobalFilter = false,\n popularFieldsLimit,\n sortedSelectedFields,\n getCustomFieldType,\n onOverrideFieldGroupDetails,\n onSupportedFieldFilter,\n onSelectedFieldFilter,\n}", + "label": "{\n dataViewId,\n allFields,\n services,\n isAffectedByGlobalFilter = false,\n popularFieldsLimit,\n sortedSelectedFields,\n getCustomFieldType,\n onOverrideFieldGroupDetails,\n onSupportedFieldFilter,\n onSelectedFieldFilter,\n getNewFieldsBySpec,\n}", "description": [], "signature": [ { @@ -1921,6 +1937,27 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.ExistingFieldsInfo.newFields", + "type": "Array", + "tags": [], + "label": "newFields", + "description": [], + "signature": [ + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[] | undefined" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "@kbn/unified-field-list", "id": "def-common.ExistingFieldsInfo.numberOfFetches", @@ -2077,6 +2114,46 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.ExistingFieldsReader.getNewFields", + "type": "Function", + "tags": [], + "label": "getNewFields", + "description": [], + "signature": [ + "(dataViewId: string) => ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[]" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.ExistingFieldsReader.getNewFields.$1", + "type": "string", + "tags": [], + "label": "dataViewId", + "description": [], + "signature": [ + "string" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -4229,7 +4306,15 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + "[]>; readonly getFrequentlyChangingActionsForTrigger: (triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", @@ -4585,6 +4670,36 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.GroupedFieldsParams.getNewFieldsBySpec", + "type": "Function", + "tags": [], + "label": "getNewFieldsBySpec", + "description": [], + "signature": [ + "((fields: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.FieldSpec", + "text": "FieldSpec" + }, + "[], dataView: ", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + " | null) => T[]) | undefined" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -4660,6 +4775,31 @@ "path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.GroupedFieldsResult.allFieldsModified", + "type": "CompoundType", + "tags": [], + "label": "allFieldsModified", + "description": [], + "signature": [ + "T[] | null" + ], + "path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "@kbn/unified-field-list", + "id": "def-common.GroupedFieldsResult.hasNewFields", + "type": "boolean", + "tags": [], + "label": "hasNewFields", + "description": [], + "path": "packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -4995,14 +5135,13 @@ "children": [ { "parentPluginId": "@kbn/unified-field-list", - "id": "def-common.UnifiedFieldListSidebarContainerApi.isSidebarCollapsed$", + "id": "def-common.UnifiedFieldListSidebarContainerApi.sidebarVisibility", "type": "Object", "tags": [], - "label": "isSidebarCollapsed$", + "label": "sidebarVisibility", "description": [], "signature": [ - "Observable", - "" + "SidebarVisibility" ], "path": "packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar_container.tsx", "deprecated": false, diff --git a/api_docs/kbn_unified_field_list.mdx b/api_docs/kbn_unified_field_list.mdx index 52be5cce13839..3a1eb0a6c3bff 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unified-field-list'] --- import kbnUnifiedFieldListObj from './kbn_unified_field_list.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 | |-------------------|-----------|------------------------|-----------------| -| 285 | 0 | 261 | 9 | +| 291 | 0 | 267 | 10 | ## Common diff --git a/api_docs/kbn_unsaved_changes_badge.mdx b/api_docs/kbn_unsaved_changes_badge.mdx index aae4e0e6b7214..c6f2c87724ae2 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/unsaved-changes-badge'] --- import kbnUnsavedChangesBadgeObj from './kbn_unsaved_changes_badge.devdocs.json'; diff --git a/api_docs/kbn_url_state.devdocs.json b/api_docs/kbn_url_state.devdocs.json index aebb4ed9e0018..1671e9104db27 100644 --- a/api_docs/kbn_url_state.devdocs.json +++ b/api_docs/kbn_url_state.devdocs.json @@ -29,7 +29,7 @@ "\nThis hook stores state in the URL, but with a namespace to avoid collisions with other values in the URL.\nIt also batches updates to the URL to avoid excessive history entries.\nWith it, you can store state in the URL and have it persist across page refreshes.\nThe state is stored in the URL as a Rison encoded object.\n\nExample: when called like this `const [value, setValue] = useUrlState('myNamespace', 'myKey');`\nthe state will be stored in the URL like this: `?myNamespace=(myKey:!n)`\n\nState is not cleared from the URL when the hook is unmounted and this is by design.\nIf you want it to be cleared, you can do it manually by calling `setValue(undefined)`.\n" ], "signature": [ - "(urlNamespace: string, key: string) => readonly [T | undefined, (updatedValue: T | undefined) => void]" + "(urlNamespace: string, key: string) => readonly [T | undefined, (newValue: T | undefined) => void]" ], "path": "packages/kbn-url-state/index.ts", "deprecated": false, diff --git a/api_docs/kbn_url_state.mdx b/api_docs/kbn_url_state.mdx index 52085bb35f2b4..a3fc1680cec23 100644 --- a/api_docs/kbn_url_state.mdx +++ b/api_docs/kbn_url_state.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/kbn-url-state title: "@kbn/url-state" image: https://source.unsplash.com/400x175/?github description: API docs for the @kbn/url-state plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/url-state'] --- import kbnUrlStateObj from './kbn_url_state.devdocs.json'; diff --git a/api_docs/kbn_use_tracked_promise.mdx b/api_docs/kbn_use_tracked_promise.mdx index 20ffe3d59787b..07a2a3f8e004d 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-01-04 +date: 2024-01-25 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 10edf6016074c..baf2ade08b238 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-01-04 +date: 2024-01-25 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 7d3fc106dac29..3a08186d56882 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-01-04 +date: 2024-01-25 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 c276f12da1e50..657074baaf9aa 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-01-04 +date: 2024-01-25 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 f069f54e5d8c3..f7ed6cdb629b1 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/utils'] --- import kbnUtilsObj from './kbn_utils.devdocs.json'; diff --git a/api_docs/kbn_visualization_ui_components.devdocs.json b/api_docs/kbn_visualization_ui_components.devdocs.json index fef2bfc2693e2..f22184e80129c 100644 --- a/api_docs/kbn_visualization_ui_components.devdocs.json +++ b/api_docs/kbn_visualization_ui_components.devdocs.json @@ -313,7 +313,7 @@ "label": "DimensionTrigger", "description": [], "signature": [ - "({ id, label, color, dataTestSubj, }: { label: React.ReactNode; id?: string | undefined; color?: \"warning\" | \"success\" | \"default\" | \"subdued\" | \"accent\" | \"danger\" | \"ghost\" | ", + "({ id, label, color, dataTestSubj, }: { label: React.ReactNode; id?: string | undefined; color?: \"default\" | \"warning\" | \"success\" | \"subdued\" | \"accent\" | \"danger\" | \"ghost\" | ", "Property", ".Color | undefined; dataTestSubj?: string | undefined; }) => JSX.Element" ], @@ -368,7 +368,7 @@ "label": "color", "description": [], "signature": [ - "\"warning\" | \"success\" | \"default\" | \"subdued\" | \"accent\" | \"danger\" | \"ghost\" | ", + "\"default\" | \"warning\" | \"success\" | \"subdued\" | \"accent\" | \"danger\" | \"ghost\" | ", "Property", ".Color | undefined" ], diff --git a/api_docs/kbn_visualization_ui_components.mdx b/api_docs/kbn_visualization_ui_components.mdx index f5580d57a021d..7a08ede8a7ced 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-01-04 +date: 2024-01-25 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 7f270fa1d36f3..05ca2bdef927f 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/visualization-utils'] --- import kbnVisualizationUtilsObj from './kbn_visualization_utils.devdocs.json'; diff --git a/api_docs/kbn_xstate_utils.devdocs.json b/api_docs/kbn_xstate_utils.devdocs.json index 7c3dbf7d10fdc..9e9e9c335637f 100644 --- a/api_docs/kbn_xstate_utils.devdocs.json +++ b/api_docs/kbn_xstate_utils.devdocs.json @@ -241,7 +241,13 @@ "signature": [ "TState extends ", "State", - " ? ", + ", infer TTypestate extends ", + "Typestate", + ", infer TResolvedTypesMeta> ? ", "State", "<(TTypestate extends any ? { value: TStateValue; context: any; } extends TTypestate ? TTypestate : never : never)[\"context\"], TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> & { value: TStateValue; } : never" ], @@ -261,7 +267,13 @@ "EmittedFrom", " extends ", "State", - " ? ", + ", infer TTypestate extends ", + "Typestate", + ", infer TResolvedTypesMeta> ? ", "State", "<(TTypestate extends any ? { value: TStateValue; context: any; } extends TTypestate ? TTypestate : never : never)[\"context\"], TEvent, TStateSchema, TTypestate, TResolvedTypesMeta> & { value: TStateValue; } : never" ], diff --git a/api_docs/kbn_xstate_utils.mdx b/api_docs/kbn_xstate_utils.mdx index ef70cc8f32ac4..78500d6b931b5 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/xstate-utils'] --- import kbnXstateUtilsObj from './kbn_xstate_utils.devdocs.json'; diff --git a/api_docs/kbn_yarn_lock_validator.mdx b/api_docs/kbn_yarn_lock_validator.mdx index 0c633dc5c27d5..586a139251165 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', '@kbn/yarn-lock-validator'] --- import kbnYarnLockValidatorObj from './kbn_yarn_lock_validator.devdocs.json'; diff --git a/api_docs/kbn_zod_helpers.mdx b/api_docs/kbn_zod_helpers.mdx index a418ec701d6cc..00a93b032ea56 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-01-04 +date: 2024-01-25 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 f856e3a8ce372..83c6503723814 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaOverview'] --- import kibanaOverviewObj from './kibana_overview.devdocs.json'; diff --git a/api_docs/kibana_react.devdocs.json b/api_docs/kibana_react.devdocs.json index 8707e724e80e0..b9530c96a486e 100644 --- a/api_docs/kibana_react.devdocs.json +++ b/api_docs/kibana_react.devdocs.json @@ -190,110 +190,6 @@ } ], "functions": [ - { - "parentPluginId": "kibanaReact", - "id": "def-public.CodeEditor", - "type": "Function", - "tags": [ - "see" - ], - "label": "CodeEditor", - "description": [ - "\nRenders a Monaco code editor with EUI color theme.\n" - ], - "signature": [ - "(props: React.PropsWithChildren<", - { - "pluginId": "@kbn/code-editor", - "scope": "common", - "docId": "kibKbnCodeEditorPluginApi", - "section": "def-common.CodeEditorProps", - "text": "CodeEditorProps" - }, - ">) => JSX.Element" - ], - "path": "src/plugins/kibana_react/public/code_editor/index.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "kibanaReact", - "id": "def-public.CodeEditor.$1", - "type": "CompoundType", - "tags": [], - "label": "props", - "description": [], - "signature": [ - "React.PropsWithChildren<", - { - "pluginId": "@kbn/code-editor", - "scope": "common", - "docId": "kibKbnCodeEditorPluginApi", - "section": "def-common.CodeEditorProps", - "text": "CodeEditorProps" - }, - ">" - ], - "path": "src/plugins/kibana_react/public/code_editor/index.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "kibanaReact", - "id": "def-public.CodeEditorField", - "type": "Function", - "tags": [], - "label": "CodeEditorField", - "description": [ - "\nRenders a Monaco code editor in the same style as other EUI form fields." - ], - "signature": [ - "(props: React.PropsWithChildren<", - { - "pluginId": "@kbn/code-editor", - "scope": "common", - "docId": "kibKbnCodeEditorPluginApi", - "section": "def-common.CodeEditorProps", - "text": "CodeEditorProps" - }, - ">) => JSX.Element" - ], - "path": "src/plugins/kibana_react/public/code_editor/index.tsx", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "kibanaReact", - "id": "def-public.CodeEditorField.$1", - "type": "CompoundType", - "tags": [], - "label": "props", - "description": [], - "signature": [ - "React.PropsWithChildren<", - { - "pluginId": "@kbn/code-editor", - "scope": "common", - "docId": "kibKbnCodeEditorPluginApi", - "section": "def-common.CodeEditorProps", - "text": "CodeEditorProps" - }, - ">" - ], - "path": "src/plugins/kibana_react/public/code_editor/index.tsx", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, { "parentPluginId": "kibanaReact", "id": "def-public.createKibanaReactContext", @@ -1151,18 +1047,6 @@ "plugin": "aiops", "path": "x-pack/plugins/aiops/public/embeddable/embeddable_change_point_chart.tsx" }, - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" - }, - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" - }, - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" - }, { "plugin": "licenseManagement", "path": "x-pack/plugins/license_management/public/shared_imports.ts" @@ -1179,6 +1063,18 @@ "plugin": "licenseManagement", "path": "x-pack/plugins/license_management/public/application/app_providers.tsx" }, + { + "plugin": "advancedSettings", + "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" + }, + { + "plugin": "advancedSettings", + "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" + }, + { + "plugin": "advancedSettings", + "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/embeddable/map_embeddable.tsx" @@ -1719,6 +1615,10 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/app/app.tsx" }, + { + "plugin": "console", + "path": "src/plugins/console/public/shared_imports.ts" + }, { "plugin": "snapshotRestore", "path": "x-pack/plugins/snapshot_restore/public/shared_imports.ts" @@ -1839,22 +1739,6 @@ "plugin": "triggersActionsUi", "path": "x-pack/plugins/triggers_actions_ui/public/application/sections/test_utils.tsx" }, - { - "plugin": "console", - "path": "src/plugins/console/public/shared_imports.ts" - }, - { - "plugin": "console", - "path": "src/plugins/console/public/application/index.tsx" - }, - { - "plugin": "console", - "path": "src/plugins/console/public/application/index.tsx" - }, - { - "plugin": "console", - "path": "src/plugins/console/public/application/index.tsx" - }, { "plugin": "filesManagement", "path": "src/plugins/files_management/public/mount_management_section.tsx" @@ -2752,6 +2636,14 @@ "plugin": "lens", "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/edit_action_helpers.ts" }, + { + "plugin": "lens", + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/in_app_embeddable_edit_action_helpers.tsx" + }, + { + "plugin": "lens", + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/in_app_embeddable_edit_action_helpers.tsx" + }, { "plugin": "security", "path": "x-pack/plugins/security/public/account_management/account_management_app.tsx" @@ -2868,14 +2760,6 @@ "plugin": "observabilityShared", "path": "x-pack/plugins/observability_shared/public/components/header_menu/header_menu_portal.tsx" }, - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" - }, - { - "plugin": "advancedSettings", - "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" - }, { "plugin": "telemetry", "path": "src/plugins/telemetry/public/services/telemetry_notifications/render_opt_in_status_notice_banner.tsx" @@ -2884,6 +2768,14 @@ "plugin": "telemetry", "path": "src/plugins/telemetry/public/services/telemetry_notifications/render_opt_in_status_notice_banner.tsx" }, + { + "plugin": "advancedSettings", + "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" + }, + { + "plugin": "advancedSettings", + "path": "src/plugins/advanced_settings/public/management_app/components/form/form.tsx" + }, { "plugin": "maps", "path": "x-pack/plugins/maps/public/render_app.tsx" @@ -3220,6 +3112,18 @@ "plugin": "securitySolution", "path": "x-pack/plugins/security_solution/public/detection_engine/rule_management_ui/components/rules_table/bulk_actions/use_bulk_actions.tsx" }, + { + "plugin": "console", + "path": "src/plugins/console/public/shared_imports.ts" + }, + { + "plugin": "console", + "path": "src/plugins/console/public/application/hooks/use_send_current_request/use_send_current_request.ts" + }, + { + "plugin": "console", + "path": "src/plugins/console/public/application/hooks/use_send_current_request/use_send_current_request.ts" + }, { "plugin": "synthetics", "path": "x-pack/plugins/synthetics/public/apps/synthetics/state/monitor_list/toast_title.tsx" @@ -3312,18 +3216,6 @@ "plugin": "cloudLinks", "path": "x-pack/plugins/cloud_integrations/cloud_links/public/maybe_add_cloud_links/theme_darkmode_toggle.tsx" }, - { - "plugin": "console", - "path": "src/plugins/console/public/shared_imports.ts" - }, - { - "plugin": "console", - "path": "src/plugins/console/public/application/hooks/use_send_current_request/use_send_current_request.ts" - }, - { - "plugin": "console", - "path": "src/plugins/console/public/application/hooks/use_send_current_request/use_send_current_request.ts" - }, { "plugin": "dataViewManagement", "path": "src/plugins/data_view_management/public/components/edit_index_pattern/indexed_fields_table/components/table/table.tsx" @@ -3356,18 +3248,6 @@ "plugin": "filesManagement", "path": "src/plugins/files_management/public/mount_management_section.tsx" }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/test_samples/actions/send_message_action.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/test_samples/actions/send_message_action.tsx" - }, - { - "plugin": "embeddable", - "path": "src/plugins/embeddable/public/lib/test_samples/actions/send_message_action.tsx" - }, { "plugin": "embeddable", "path": "src/plugins/embeddable/public/lib/test_samples/embeddables/contact_card/contact_card_embeddable_factory.tsx" @@ -4864,18 +4744,6 @@ ], "enums": [], "misc": [ - { - "parentPluginId": "kibanaReact", - "id": "def-public.CodeEditorProps", - "type": "Type", - "tags": [], - "label": "CodeEditorProps", - "description": [], - "path": "src/plugins/kibana_react/public/code_editor/index.tsx", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "kibanaReact", "id": "def-public.ElasticAgentCardProps", @@ -5082,96 +4950,6 @@ "references": [], "initialIsOpen": false }, - { - "parentPluginId": "kibanaReact", - "id": "def-public.LANG", - "type": "string", - "tags": [], - "label": "LANG", - "description": [], - "signature": [ - "\"css\"" - ], - "path": "packages/shared-ux/code_editor/languages/css/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "kibanaReact", - "id": "def-public.LANG", - "type": "string", - "tags": [], - "label": "LANG", - "description": [], - "signature": [ - "\"markdown\"" - ], - "path": "packages/shared-ux/code_editor/languages/markdown/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "kibanaReact", - "id": "def-public.LANG", - "type": "string", - "tags": [], - "label": "LANG", - "description": [], - "signature": [ - "\"yaml\"" - ], - "path": "packages/shared-ux/code_editor/languages/yaml/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "kibanaReact", - "id": "def-public.LANG", - "type": "string", - "tags": [], - "label": "LANG", - "description": [], - "signature": [ - "\"handlebars\"" - ], - "path": "packages/shared-ux/code_editor/languages/handlebars/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "kibanaReact", - "id": "def-public.LANG", - "type": "string", - "tags": [], - "label": "LANG", - "description": [], - "signature": [ - "\"hjson\"" - ], - "path": "packages/shared-ux/code_editor/languages/hjson/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "kibanaReact", - "id": "def-public.LANG", - "type": "string", - "tags": [], - "label": "LANG", - "description": [], - "signature": [ - "\"grok\"" - ], - "path": "packages/shared-ux/code_editor/languages/grok/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "kibanaReact", "id": "def-public.NO_DATA_RECOMMENDED", diff --git a/api_docs/kibana_react.mdx b/api_docs/kibana_react.mdx index b24f96cb3444e..954c9696ec416 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kibanaReact'] --- import kibanaReactObj from './kibana_react.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 | |-------------------|-----------|------------------------|-----------------| -| 163 | 0 | 129 | 3 | +| 152 | 0 | 120 | 3 | ## Client diff --git a/api_docs/kibana_utils.devdocs.json b/api_docs/kibana_utils.devdocs.json index 5e1c4d861f7cf..c880f79625ef1 100644 --- a/api_docs/kibana_utils.devdocs.json +++ b/api_docs/kibana_utils.devdocs.json @@ -906,7 +906,8 @@ "section": "def-public.ResizeChecker", "text": "ResizeChecker" }, - " extends EventEmitter" + " extends ", + "events" ], "path": "src/plugins/kibana_utils/public/resize_checker/resize_checker.ts", "deprecated": false, @@ -6715,7 +6716,7 @@ "section": "def-common.StateContainer", "text": "StateContainer" }, - " ? T : never" + " ? T : never" ], "path": "src/plugins/kibana_utils/common/state_containers/types.ts", "deprecated": false, @@ -11595,7 +11596,7 @@ "section": "def-common.StateContainer", "text": "StateContainer" }, - " ? T : never" + " ? T : never" ], "path": "src/plugins/kibana_utils/common/state_containers/types.ts", "deprecated": false, diff --git a/api_docs/kibana_utils.mdx b/api_docs/kibana_utils.mdx index b5c7372638bcb..0f4f1727f7c46 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-01-04 +date: 2024-01-25 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 a5ffb3a455b9c..57ff14b13cc4c 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'kubernetesSecurity'] --- import kubernetesSecurityObj from './kubernetes_security.devdocs.json'; diff --git a/api_docs/lens.devdocs.json b/api_docs/lens.devdocs.json index 77331951572fc..202587a8468b5 100644 --- a/api_docs/lens.devdocs.json +++ b/api_docs/lens.devdocs.json @@ -889,7 +889,7 @@ "\nGets the Lens embeddable's local filters" ], "signature": [ - "() => Promise<", + "() => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -897,7 +897,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[]>" + "[]" ], "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx", "deprecated": false, @@ -917,7 +917,7 @@ "\nGets the Lens embeddable's local query" ], "signature": [ - "() => Promise<", + "() => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -925,7 +925,7 @@ "section": "def-common.Query", "text": "Query" }, - " | undefined>" + " | undefined" ], "path": "x-pack/plugins/lens/public/embeddable/embeddable.tsx", "deprecated": false, @@ -2873,6 +2873,276 @@ ], "initialIsOpen": false }, + { + "parentPluginId": "lens", + "id": "def-public.InlineEditLensEmbeddableContext", + "type": "Interface", + "tags": [], + "label": "InlineEditLensEmbeddableContext", + "description": [], + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.InlineEditLensEmbeddableContext.attributes", + "type": "CompoundType", + "tags": [], + "label": "attributes", + "description": [], + "signature": [ + "LensAttributes<\"lnsXY\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.XYState", + "text": "XYState" + }, + "> | LensAttributes<\"lnsPie\", ", + "PieVisualizationState", + "> | LensAttributes<\"lnsHeatmap\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.HeatmapVisualizationState", + "text": "HeatmapVisualizationState" + }, + "> | LensAttributes<\"lnsGauge\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.GaugeVisualizationState", + "text": "GaugeVisualizationState" + }, + "> | LensAttributes<\"lnsDatatable\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.DatatableVisualizationState", + "text": "DatatableVisualizationState" + }, + "> | LensAttributes<\"lnsLegacyMetric\", ", + { + "pluginId": "lens", + "scope": "common", + "docId": "kibLensPluginApi", + "section": "def-common.LegacyMetricState", + "text": "LegacyMetricState" + }, + "> | LensAttributes<\"lnsMetric\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.MetricVisualizationState", + "text": "MetricVisualizationState" + }, + "> | LensAttributes" + ], + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.InlineEditLensEmbeddableContext.lensEvent", + "type": "Object", + "tags": [], + "label": "lensEvent", + "description": [], + "signature": [ + "LensChartLoadEvent" + ], + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "lens", + "id": "def-public.InlineEditLensEmbeddableContext.onUpdate", + "type": "Function", + "tags": [], + "label": "onUpdate", + "description": [], + "signature": [ + "(newAttributes: LensAttributes<\"lnsXY\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.XYState", + "text": "XYState" + }, + "> | LensAttributes<\"lnsPie\", ", + "PieVisualizationState", + "> | LensAttributes<\"lnsHeatmap\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.HeatmapVisualizationState", + "text": "HeatmapVisualizationState" + }, + "> | LensAttributes<\"lnsGauge\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.GaugeVisualizationState", + "text": "GaugeVisualizationState" + }, + "> | LensAttributes<\"lnsDatatable\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.DatatableVisualizationState", + "text": "DatatableVisualizationState" + }, + "> | LensAttributes<\"lnsLegacyMetric\", ", + { + "pluginId": "lens", + "scope": "common", + "docId": "kibLensPluginApi", + "section": "def-common.LegacyMetricState", + "text": "LegacyMetricState" + }, + "> | LensAttributes<\"lnsMetric\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.MetricVisualizationState", + "text": "MetricVisualizationState" + }, + "> | LensAttributes) => void" + ], + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.InlineEditLensEmbeddableContext.onUpdate.$1", + "type": "CompoundType", + "tags": [], + "label": "newAttributes", + "description": [], + "signature": [ + "LensAttributes<\"lnsXY\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.XYState", + "text": "XYState" + }, + "> | LensAttributes<\"lnsPie\", ", + "PieVisualizationState", + "> | LensAttributes<\"lnsHeatmap\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.HeatmapVisualizationState", + "text": "HeatmapVisualizationState" + }, + "> | LensAttributes<\"lnsGauge\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.GaugeVisualizationState", + "text": "GaugeVisualizationState" + }, + "> | LensAttributes<\"lnsDatatable\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.DatatableVisualizationState", + "text": "DatatableVisualizationState" + }, + "> | LensAttributes<\"lnsLegacyMetric\", ", + { + "pluginId": "lens", + "scope": "common", + "docId": "kibLensPluginApi", + "section": "def-common.LegacyMetricState", + "text": "LegacyMetricState" + }, + "> | LensAttributes<\"lnsMetric\", ", + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.MetricVisualizationState", + "text": "MetricVisualizationState" + }, + "> | LensAttributes" + ], + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, + { + "parentPluginId": "lens", + "id": "def-public.InlineEditLensEmbeddableContext.onApply", + "type": "Function", + "tags": [], + "label": "onApply", + "description": [], + "signature": [ + "(() => void) | undefined" + ], + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "lens", + "id": "def-public.InlineEditLensEmbeddableContext.onCancel", + "type": "Function", + "tags": [], + "label": "onCancel", + "description": [], + "signature": [ + "(() => void) | undefined" + ], + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [] + }, + { + "parentPluginId": "lens", + "id": "def-public.InlineEditLensEmbeddableContext.container", + "type": "CompoundType", + "tags": [], + "label": "container", + "description": [], + "signature": [ + "HTMLElement | null | undefined" + ], + "path": "x-pack/plugins/lens/public/trigger_actions/open_lens_config/in_app_embeddable_edit/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false + }, { "parentPluginId": "lens", "id": "def-public.LastValueIndexPatternColumn", @@ -8268,6 +8538,120 @@ } ], "returnComment": [] + }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSortedColumns", + "type": "Function", + "tags": [], + "label": "getSortedColumns", + "description": [ + "\nA visualization can share how columns are visually sorted" + ], + "signature": [ + "((state: T, datasourceLayers?: Partial> | undefined) => string[]) | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSortedColumns.$1", + "type": "Uncategorized", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "T" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getSortedColumns.$2", + "type": "Object", + "tags": [], + "label": "datasourceLayers", + "description": [], + "signature": [ + "Partial> | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] + }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getTelemetryEventsOnSave", + "type": "Function", + "tags": [], + "label": "getTelemetryEventsOnSave", + "description": [ + "\nreturns array of telemetry events for the visualization on save" + ], + "signature": [ + "((state: T, prevState?: T | undefined) => string[]) | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getTelemetryEventsOnSave.$1", + "type": "Uncategorized", + "tags": [], + "label": "state", + "description": [], + "signature": [ + "T" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "lens", + "id": "def-public.Visualization.getTelemetryEventsOnSave.$2", + "type": "Uncategorized", + "tags": [], + "label": "prevState", + "description": [], + "signature": [ + "T | undefined" + ], + "path": "x-pack/plugins/lens/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -8910,7 +9294,7 @@ "CustomXDomain", " | undefined>; ariaDescription?: string | undefined; ariaDescribedBy?: string | undefined; ariaLabelledBy?: string | undefined; ariaTableCaption?: string | undefined; legendAction?: \"ignore\" | undefined; legendStrategy?: ", "LegendStrategy", - " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined" + " | undefined; onLegendItemClick?: \"ignore\" | undefined; customLegend?: \"ignore\" | undefined; onLegendItemMinusClick?: \"ignore\" | undefined; onLegendItemOut?: \"ignore\" | undefined; onLegendItemOver?: \"ignore\" | undefined; onLegendItemPlusClick?: \"ignore\" | undefined; debugState?: boolean | undefined; onProjectionClick?: \"ignore\" | undefined; onElementClick?: \"ignore\" | undefined; onElementOver?: \"ignore\" | undefined; onElementOut?: \"ignore\" | undefined; onBrushEnd?: \"ignore\" | undefined; onResize?: \"ignore\" | undefined; onWillRender?: \"ignore\" | undefined; onProjectionAreaChange?: \"ignore\" | undefined; onAnnotationClick?: \"ignore\" | undefined; pointerUpdateDebounce?: number | undefined; roundHistogramBrushValues?: boolean | undefined; noResults?: React.ReactChild | React.ComponentType<{}> | undefined; legendSort?: \"ignore\" | undefined; }>> & Partial>) | undefined" ], "path": "src/plugins/chart_expressions/expression_xy/common/types/expression_renderers.ts", "deprecated": false, @@ -10360,7 +10744,7 @@ "label": "LensSavedObjectAttributes", "description": [], "signature": [ - "{ description?: string | undefined; title: string; state: { datasourceStates: Record; visualization: unknown; query: ", + "{ title: string; description?: string | undefined; state: { datasourceStates: Record; visualization: unknown; query: ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -10933,7 +11317,7 @@ }, "<", "GoalDomainRange", - ">; actual?: number | undefined; base?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", + ">; base?: number | undefined; actual?: number | undefined; bandFillColor?: \"ignore\" | undefined; tickValueFormatter?: \"ignore\" | undefined; labelMajor?: string | ", "GoalLabelAccessor", " | undefined; labelMinor?: string | ", "GoalLabelAccessor", diff --git a/api_docs/lens.mdx b/api_docs/lens.mdx index 162d4ed72ae98..075fcd1c204e0 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lens'] --- import lensObj from './lens.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 | |-------------------|-----------|------------------------|-----------------| -| 644 | 0 | 545 | 60 | +| 658 | 0 | 557 | 61 | ## Client diff --git a/api_docs/license_api_guard.mdx b/api_docs/license_api_guard.mdx index ea890b5957f21..31a4bd9659f0b 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-01-04 +date: 2024-01-25 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 e3b420f9e5b17..d1e9f4d261245 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-01-04 +date: 2024-01-25 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 14e73c2998c72..fcd31c0513245 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-01-04 +date: 2024-01-25 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 cf0d1eed7664f..8b95629aa6aae 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'links'] --- import linksObj from './links.devdocs.json'; diff --git a/api_docs/lists.mdx b/api_docs/lists.mdx index 010957d4e13d3..b036c1c6ce666 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'lists'] --- import listsObj from './lists.devdocs.json'; diff --git a/api_docs/log_explorer.mdx b/api_docs/log_explorer.mdx index 7cfcac8ae5cf6..563ec60b74b4e 100644 --- a/api_docs/log_explorer.mdx +++ b/api_docs/log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/logExplorer title: "logExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the logExplorer plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logExplorer'] --- import logExplorerObj from './log_explorer.devdocs.json'; diff --git a/api_docs/logs_shared.devdocs.json b/api_docs/logs_shared.devdocs.json index ee2ec077ebe07..ee1cc16b8f92e 100644 --- a/api_docs/logs_shared.devdocs.json +++ b/api_docs/logs_shared.devdocs.json @@ -270,7 +270,15 @@ "label": "LogAIAssistant", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: ", + { + "pluginId": "logsShared", + "scope": "public", + "docId": "kibLogsSharedPluginApi", + "section": "def-public.LogAIAssistantProps", + "text": "LogAIAssistantProps" + }, + ") => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -280,12 +288,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogAIAssistant.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -302,7 +310,9 @@ "label": "LogColumnHeader", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: { columnWidth: ", + "LogEntryColumnWidth", + "; 'data-test-subj'?: string | undefined; } & { children?: React.ReactNode; }) => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -312,12 +322,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogColumnHeader.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -334,7 +344,15 @@ "label": "LogColumnHeadersWrapper", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: StyledComponentPropsWithAs | keyof JSX.IntrinsicElements, ", + { + "pluginId": "@kbn/react-kibana-context-styled", + "scope": "common", + "docId": "kibKbnReactKibanaContextStyledPluginApi", + "section": "def-common.EuiTheme", + "text": "EuiTheme" + }, + ", { role: React.AriaRole; }, \"role\">) => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -344,12 +362,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogColumnHeadersWrapper.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -366,7 +384,15 @@ "label": "LogEntryColumn", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: StyledComponentPropsWithAs | keyof JSX.IntrinsicElements, ", + { + "pluginId": "@kbn/react-kibana-context-styled", + "scope": "common", + "docId": "kibKbnReactKibanaContextStyledPluginApi", + "section": "def-common.EuiTheme", + "text": "EuiTheme" + }, + ", { role: \"cell\"; } & LogEntryColumnProps, \"role\">) => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -376,12 +402,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogEntryColumn.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -398,7 +424,9 @@ "label": "LogEntryContextMenu", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: ", + "LogEntryContextMenuProps", + " & { children?: React.ReactNode; }) => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -408,12 +436,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogEntryContextMenu.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -430,7 +458,9 @@ "label": "LogEntryFieldColumn", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: ", + "LogEntryFieldColumnProps", + " & { children?: React.ReactNode; }) => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -440,12 +470,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogEntryFieldColumn.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -497,7 +527,9 @@ "label": "LogEntryMessageColumn", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: ", + "LogEntryMessageColumnProps", + ") => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -507,12 +539,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogEntryMessageColumn.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -529,7 +561,15 @@ "label": "LogEntryRowWrapper", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: StyledComponentPropsWithAs | keyof JSX.IntrinsicElements, ", + { + "pluginId": "@kbn/react-kibana-context-styled", + "scope": "common", + "docId": "kibKbnReactKibanaContextStyledPluginApi", + "section": "def-common.EuiTheme", + "text": "EuiTheme" + }, + ", { role: \"row\"; } & LogEntryRowWrapperProps, \"role\">) => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -539,12 +579,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogEntryRowWrapper.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -561,7 +601,9 @@ "label": "LogEntryTimestampColumn", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: ", + "LogEntryTimestampColumnProps", + ") => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -571,12 +613,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogEntryTimestampColumn.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -689,7 +731,15 @@ "label": "LogStream", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: ", + { + "pluginId": "logsShared", + "scope": "public", + "docId": "kibLogsSharedPluginApi", + "section": "def-public.LogStreamProps", + "text": "LogStreamProps" + }, + ") => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -699,12 +749,12 @@ { "parentPluginId": "logsShared", "id": "def-public.LogStream.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -991,7 +1041,9 @@ "label": "ScrollableLogTextStreamView", "description": [], "signature": [ - "(props: any) => JSX.Element" + "(props: ", + "ScrollableLogTextStreamViewProps", + ") => JSX.Element" ], "path": "x-pack/plugins/logs_shared/public/index.ts", "deprecated": false, @@ -1001,12 +1053,12 @@ { "parentPluginId": "logsShared", "id": "def-public.ScrollableLogTextStreamView.$1", - "type": "Any", + "type": "Uncategorized", "tags": [], "label": "props", "description": [], "signature": [ - "any" + "TComponent extends React.JSXElementConstructor ? P : TComponent extends keyof JSX.IntrinsicElements ? JSX.IntrinsicElements[TComponent] : {}" ], "path": "x-pack/plugins/logs_shared/common/dynamic.tsx", "deprecated": false, @@ -2816,7 +2868,56 @@ "path": "x-pack/plugins/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false, - "children": [], + "children": [ + { + "parentPluginId": "logsShared", + "id": "def-public.LogsSharedClientSetupDeps.share", + "type": "CompoundType", + "tags": [], + "label": "share", + "description": [], + "signature": [ + "{ register: (shareMenuProvider: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.ShareMenuProvider", + "text": "ShareMenuProvider" + }, + ") => void; } & { url: ", + { + "pluginId": "share", + "scope": "public", + "docId": "kibSharePluginApi", + "section": "def-public.BrowserUrlService", + "text": "BrowserUrlService" + }, + "; navigate(options: ", + "RedirectOptions", + "<", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.SerializableRecord", + "text": "SerializableRecord" + }, + ">): void; setAnonymousAccessServiceProvider: (provider: () => ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.AnonymousAccessServiceContract", + "text": "AnonymousAccessServiceContract" + }, + ") => void; }" + ], + "path": "x-pack/plugins/logs_shared/public/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], "initialIsOpen": false }, { @@ -2956,7 +3057,15 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + "[]>; readonly getFrequentlyChangingActionsForTrigger: (triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", @@ -3302,6 +3411,20 @@ "path": "x-pack/plugins/logs_shared/public/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "logsShared", + "id": "def-public.LogsSharedClientSetupExports.locators", + "type": "Object", + "tags": [], + "label": "locators", + "description": [], + "signature": [ + "LogsSharedLocators" + ], + "path": "x-pack/plugins/logs_shared/public/types.ts", + "deprecated": false, + "trackAdoption": false } ], "lifecycle": "setup", @@ -5114,6 +5237,53 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "logsShared", + "id": "def-common.createNodeLogsQuery", + "type": "Function", + "tags": [], + "label": "createNodeLogsQuery", + "description": [], + "signature": [ + "(params: ", + { + "pluginId": "logsShared", + "scope": "common", + "docId": "kibLogsSharedPluginApi", + "section": "def-common.NodeLogsLocatorParams", + "text": "NodeLogsLocatorParams" + }, + ") => string" + ], + "path": "x-pack/plugins/logs_shared/common/locators/helpers.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "logsShared", + "id": "def-common.createNodeLogsQuery.$1", + "type": "Object", + "tags": [], + "label": "params", + "description": [], + "signature": [ + { + "pluginId": "logsShared", + "scope": "common", + "docId": "kibLogsSharedPluginApi", + "section": "def-common.NodeLogsLocatorParams", + "text": "NodeLogsLocatorParams" + } + ], + "path": "x-pack/plugins/logs_shared/common/locators/helpers.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "logsShared", "id": "def-common.getLogEntryCursorFromHit", @@ -5158,6 +5328,94 @@ ], "returnComment": [], "initialIsOpen": false + }, + { + "parentPluginId": "logsShared", + "id": "def-common.getLogsLocatorsFromUrlService", + "type": "Function", + "tags": [], + "label": "getLogsLocatorsFromUrlService", + "description": [], + "signature": [ + "(urlService: ", + "UrlService", + ") => { logsLocator: ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "logsShared", + "scope": "common", + "docId": "kibLogsSharedPluginApi", + "section": "def-common.LogsLocatorParams", + "text": "LogsLocatorParams" + }, + ">; traceLogsLocator: ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "logsShared", + "scope": "common", + "docId": "kibLogsSharedPluginApi", + "section": "def-common.TraceLogsLocatorParams", + "text": "TraceLogsLocatorParams" + }, + ">; nodeLogsLocator: ", + { + "pluginId": "share", + "scope": "common", + "docId": "kibSharePluginApi", + "section": "def-common.LocatorPublic", + "text": "LocatorPublic" + }, + "<", + { + "pluginId": "logsShared", + "scope": "common", + "docId": "kibLogsSharedPluginApi", + "section": "def-common.NodeLogsLocatorParams", + "text": "NodeLogsLocatorParams" + }, + ">; }" + ], + "path": "x-pack/plugins/logs_shared/common/locators/get_logs_locators.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "logsShared", + "id": "def-common.getLogsLocatorsFromUrlService.$1", + "type": "Object", + "tags": [], + "label": "urlService", + "description": [], + "signature": [ + "UrlService", + "" + ], + "path": "x-pack/plugins/logs_shared/common/locators/get_logs_locators.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false } ], "interfaces": [ @@ -5185,7 +5443,7 @@ "text": "SerializableRecord" } ], - "path": "x-pack/plugins/logs_shared/common/locators/logs_locator.ts", + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false, "children": [ @@ -5201,7 +5459,7 @@ "signature": [ "number | undefined" ], - "path": "x-pack/plugins/logs_shared/common/locators/logs_locator.ts", + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false }, @@ -5217,7 +5475,7 @@ "signature": [ "{ startTime: number; endTime: number; } | undefined" ], - "path": "x-pack/plugins/logs_shared/common/locators/logs_locator.ts", + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false }, @@ -5231,7 +5489,7 @@ "signature": [ "string | undefined" ], - "path": "x-pack/plugins/logs_shared/common/locators/logs_locator.ts", + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false }, @@ -5245,7 +5503,7 @@ "signature": [ "{ logViewId: string; type: \"log-view-reference\"; } | { type: \"log-view-inline\"; id: string; attributes: { name: string; description: string; logIndices: { type: \"data_view\"; dataViewId: string; } | { type: \"index_name\"; indexName: string; }; logColumns: ({ timestampColumn: { id: string; }; } | { messageColumn: { id: string; }; } | { fieldColumn: { id: string; } & { field: string; }; })[]; }; } | undefined" ], - "path": "x-pack/plugins/logs_shared/common/locators/logs_locator.ts", + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false } @@ -5276,32 +5534,29 @@ "text": "LogsLocatorParams" } ], - "path": "x-pack/plugins/logs_shared/common/locators/node_logs_locator.ts", + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false, "children": [ { "parentPluginId": "logsShared", - "id": "def-common.NodeLogsLocatorParams.nodeId", + "id": "def-common.NodeLogsLocatorParams.nodeField", "type": "string", "tags": [], - "label": "nodeId", + "label": "nodeField", "description": [], - "path": "x-pack/plugins/logs_shared/common/locators/node_logs_locator.ts", + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false }, { "parentPluginId": "logsShared", - "id": "def-common.NodeLogsLocatorParams.nodeType", - "type": "CompoundType", + "id": "def-common.NodeLogsLocatorParams.nodeId", + "type": "string", "tags": [], - "label": "nodeType", + "label": "nodeId", "description": [], - "signature": [ - "\"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsSQS\" | \"awsRDS\"" - ], - "path": "x-pack/plugins/logs_shared/common/locators/node_logs_locator.ts", + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", "deprecated": false, "trackAdoption": false } @@ -5461,6 +5716,48 @@ } ], "initialIsOpen": false + }, + { + "parentPluginId": "logsShared", + "id": "def-common.TraceLogsLocatorParams", + "type": "Interface", + "tags": [], + "label": "TraceLogsLocatorParams", + "description": [], + "signature": [ + { + "pluginId": "logsShared", + "scope": "common", + "docId": "kibLogsSharedPluginApi", + "section": "def-common.TraceLogsLocatorParams", + "text": "TraceLogsLocatorParams" + }, + " extends ", + { + "pluginId": "logsShared", + "scope": "common", + "docId": "kibLogsSharedPluginApi", + "section": "def-common.LogsLocatorParams", + "text": "LogsLocatorParams" + } + ], + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "logsShared", + "id": "def-common.TraceLogsLocatorParams.traceId", + "type": "string", + "tags": [], + "label": "traceId", + "description": [], + "path": "x-pack/plugins/logs_shared/common/locators/types.ts", + "deprecated": false, + "trackAdoption": false + } + ], + "initialIsOpen": false } ], "enums": [], @@ -5495,6 +5792,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "logsShared", + "id": "def-common.INFRA_LOGS_LOCATOR_ID", + "type": "string", + "tags": [], + "label": "INFRA_LOGS_LOCATOR_ID", + "description": [], + "signature": [ + "\"INFRA_LOGS_LOCATOR\"" + ], + "path": "x-pack/plugins/logs_shared/common/locators/infra.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "logsShared", + "id": "def-common.INFRA_NODE_LOGS_LOCATOR_ID", + "type": "string", + "tags": [], + "label": "INFRA_NODE_LOGS_LOCATOR_ID", + "description": [], + "signature": [ + "\"INFRA_NODE_LOGS_LOCATOR\"" + ], + "path": "x-pack/plugins/logs_shared/common/locators/infra.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "logsShared", "id": "def-common.LOG_ENTRIES_HIGHLIGHTS_PATH", @@ -6064,6 +6391,21 @@ "deprecated": false, "trackAdoption": false, "initialIsOpen": false + }, + { + "parentPluginId": "logsShared", + "id": "def-common.TRACE_LOGS_LOCATOR_ID", + "type": "string", + "tags": [], + "label": "TRACE_LOGS_LOCATOR_ID", + "description": [], + "signature": [ + "\"TRACE_LOGS_LOCATOR\"" + ], + "path": "x-pack/plugins/logs_shared/common/locators/trace_logs_locator.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false } ], "objects": [ diff --git a/api_docs/logs_shared.mdx b/api_docs/logs_shared.mdx index 0353663c316d2..36ca2430082be 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'logsShared'] --- import logsSharedObj from './logs_shared.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 | |-------------------|-----------|------------------------|-----------------| -| 291 | 11 | 276 | 26 | +| 302 | 0 | 287 | 32 | ## Client diff --git a/api_docs/management.mdx b/api_docs/management.mdx index eea3cf75d8548..210cf71214272 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'management'] --- import managementObj from './management.devdocs.json'; diff --git a/api_docs/maps.devdocs.json b/api_docs/maps.devdocs.json index 0ad90fed89145..31a5f2ead02e9 100644 --- a/api_docs/maps.devdocs.json +++ b/api_docs/maps.devdocs.json @@ -529,7 +529,7 @@ "label": "getFilters", "description": [], "signature": [ - "() => Promise<", + "() => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -537,7 +537,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[]>" + "[]" ], "path": "x-pack/plugins/maps/public/embeddable/map_embeddable.tsx", "deprecated": false, @@ -553,7 +553,7 @@ "label": "getQuery", "description": [], "signature": [ - "() => Promise<", + "() => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -561,7 +561,7 @@ "section": "def-common.Query", "text": "Query" }, - " | undefined>" + " | undefined" ], "path": "x-pack/plugins/maps/public/embeddable/map_embeddable.tsx", "deprecated": false, diff --git a/api_docs/maps.mdx b/api_docs/maps.mdx index 816acd8202392..8eb3f7be90258 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-01-04 +date: 2024-01-25 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 e7e002205a35a..0c37c51ba4792 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-01-04 +date: 2024-01-25 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 6c3c17671881b..4e49a7f3142e9 100644 --- a/api_docs/metrics_data_access.devdocs.json +++ b/api_docs/metrics_data_access.devdocs.json @@ -517,7 +517,7 @@ "label": "findInventoryFields", "description": [], "signature": [ - "(type: \"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsSQS\" | \"awsRDS\") => { id: string; name: string; os?: string | undefined; ip?: string | undefined; cloudProvider?: string | undefined; }" + "(type: \"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsRDS\" | \"awsSQS\") => { id: string; name: string; os?: string | undefined; ip?: string | undefined; cloudProvider?: string | undefined; }" ], "path": "x-pack/plugins/metrics_data_access/common/inventory_models/index.ts", "deprecated": false, @@ -531,7 +531,7 @@ "label": "type", "description": [], "signature": [ - "\"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsSQS\" | \"awsRDS\"" + "\"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsRDS\" | \"awsSQS\"" ], "path": "x-pack/plugins/metrics_data_access/common/inventory_models/index.ts", "deprecated": false, @@ -550,7 +550,7 @@ "label": "findInventoryModel", "description": [], "signature": [ - "(type: T) => InventoryModels" + "(type: T) => InventoryModels" ], "path": "x-pack/plugins/metrics_data_access/common/inventory_models/index.ts", "deprecated": false, @@ -583,7 +583,7 @@ "label": "getFieldByType", "description": [], "signature": [ - "(type: \"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsSQS\" | \"awsRDS\") => \"container.id\" | \"host.name\" | \"kubernetes.pod.uid\" | undefined" + "(type: \"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsRDS\" | \"awsSQS\") => \"container.id\" | \"host.name\" | \"kubernetes.pod.uid\" | undefined" ], "path": "x-pack/plugins/metrics_data_access/common/inventory_models/index.ts", "deprecated": false, @@ -597,7 +597,7 @@ "label": "type", "description": [], "signature": [ - "\"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsSQS\" | \"awsRDS\"" + "\"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsRDS\" | \"awsSQS\"" ], "path": "x-pack/plugins/metrics_data_access/common/inventory_models/index.ts", "deprecated": false, @@ -775,7 +775,7 @@ "label": "InventoryItemType", "description": [], "signature": [ - "\"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsSQS\" | \"awsRDS\"" + "\"host\" | \"container\" | \"pod\" | \"awsEC2\" | \"awsS3\" | \"awsRDS\" | \"awsSQS\"" ], "path": "x-pack/plugins/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 9fd89853595bd..02bdfff1f915b 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'metricsDataAccess'] --- import metricsDataAccessObj from './metrics_data_access.devdocs.json'; diff --git a/api_docs/ml.devdocs.json b/api_docs/ml.devdocs.json index b911654079efc..f503a76429cf0 100644 --- a/api_docs/ml.devdocs.json +++ b/api_docs/ml.devdocs.json @@ -1237,7 +1237,7 @@ "section": "def-common.DataFrameAnalyticsConfig", "text": "DataFrameAnalyticsConfig" }, - ">): Promise; deleteDataFrameAnalytics(analyticsId: string): Promise; deleteDataFrameAnalyticsAndDestIndex(analyticsId: string, deleteDestIndex: boolean, deleteDestDataView: boolean): Promise<", + ">): Promise; deleteDataFrameAnalytics(analyticsId: string, force?: boolean): Promise; deleteDataFrameAnalyticsAndDestIndex(analyticsId: string, deleteDestIndex: boolean, deleteDestDataView: boolean, force?: boolean): Promise<", "DeleteDataFrameAnalyticsWithIndexResponse", ">; startDataFrameAnalytics(analyticsId: string): Promise; stopDataFrameAnalytics(analyticsId: string, force?: boolean): Promise; getAnalyticsAuditMessages(analyticsId: string): Promise<", "JobMessage", diff --git a/api_docs/ml.mdx b/api_docs/ml.mdx index 682e2bdebbdff..018bbab948aea 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ml'] --- import mlObj from './ml.devdocs.json'; diff --git a/api_docs/mock_idp_plugin.devdocs.json b/api_docs/mock_idp_plugin.devdocs.json index 9c7b5bd1558d8..dc9e8d3ea6460 100644 --- a/api_docs/mock_idp_plugin.devdocs.json +++ b/api_docs/mock_idp_plugin.devdocs.json @@ -13,367 +13,31 @@ "functions": [], "interfaces": [], "enums": [], - "misc": [], - "objects": [] - }, - "common": { - "classes": [], - "functions": [ - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createMockIdpMetadata", - "type": "Function", - "tags": [], - "label": "createMockIdpMetadata", - "description": [ - "\nCreates XML metadata for our mock identity provider.\n\nThis can be saved to file and used to configure Elasticsearch SAML realm.\n" - ], - "signature": [ - "(kibanaUrl: string) => Promise" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createMockIdpMetadata.$1", - "type": "string", - "tags": [], - "label": "kibanaUrl", - "description": [ - "Fully qualified URL where Kibana is hosted (including base path)" - ], - "signature": [ - "string" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createSAMLResponse", - "type": "Function", - "tags": [], - "label": "createSAMLResponse", - "description": [ - "\nCreates a SAML response that can be passed directly to the Kibana ACS endpoint to authenticate a user.\n" - ], - "signature": [ - "(options: { kibanaUrl: string; authnRequestId?: string | undefined; username: string; fullname?: string | undefined; email?: string | undefined; roles: string[]; }) => Promise" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createSAMLResponse.$1", - "type": "Object", - "tags": [], - "label": "options", - "description": [], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createSAMLResponse.$1.kibanaUrl", - "type": "string", - "tags": [], - "label": "kibanaUrl", - "description": [ - "Fully qualified URL where Kibana is hosted (including base path)" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createSAMLResponse.$1.authnRequestId", - "type": "string", - "tags": [], - "label": "authnRequestId", - "description": [ - "ID from SAML authentication request" - ], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createSAMLResponse.$1.username", - "type": "string", - "tags": [], - "label": "username", - "description": [], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createSAMLResponse.$1.fullname", - "type": "string", - "tags": [], - "label": "fullname", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createSAMLResponse.$1.email", - "type": "string", - "tags": [], - "label": "email", - "description": [], - "signature": [ - "string | undefined" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.createSAMLResponse.$1.roles", - "type": "Array", - "tags": [], - "label": "roles", - "description": [], - "signature": [ - "string[]" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false - } - ] - } - ], - "returnComment": [], - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.ensureSAMLRoleMapping", - "type": "Function", - "tags": [], - "label": "ensureSAMLRoleMapping", - "description": [ - "\nCreates the role mapping required for developers to authenticate using SAML." - ], - "signature": [ - "(client: ", - "default", - ") => Promise" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false, - "children": [ - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.ensureSAMLRoleMapping.$1", - "type": "Object", - "tags": [], - "label": "client", - "description": [], - "signature": [ - "default" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], - "initialIsOpen": false - }, + "misc": [ { "parentPluginId": "mockIdpPlugin", - "id": "def-common.parseSAMLAuthnRequest", - "type": "Function", + "id": "def-server.CreateSAMLResponseParams", + "type": "Type", "tags": [], - "label": "parseSAMLAuthnRequest", + "label": "CreateSAMLResponseParams", "description": [], "signature": [ - "(samlRequest: string) => Promise<{ AssertionConsumerServiceURL: string; Destination: string; ID: string; IssueInstant: string; }>" + "{ readonly email?: string | null | undefined; readonly full_name?: string | null | undefined; readonly username: string; readonly roles: string[]; }" ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", + "path": "packages/kbn-mock-idp-plugin/server/plugin.ts", "deprecated": false, "trackAdoption": false, - "children": [ - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.parseSAMLAuthnRequest.$1", - "type": "string", - "tags": [], - "label": "samlRequest", - "description": [], - "signature": [ - "string" - ], - "path": "packages/kbn-mock-idp-plugin/common/utils.ts", - "deprecated": false, - "trackAdoption": false, - "isRequired": true - } - ], - "returnComment": [], "initialIsOpen": false } ], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], "interfaces": [], "enums": [], "misc": [ - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_ATTRIBUTE_EMAIL", - "type": "string", - "tags": [], - "label": "MOCK_IDP_ATTRIBUTE_EMAIL", - "description": [], - "signature": [ - "\"http://saml.elastic-cloud.com/attributes/email\"" - ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_ATTRIBUTE_NAME", - "type": "string", - "tags": [], - "label": "MOCK_IDP_ATTRIBUTE_NAME", - "description": [], - "signature": [ - "\"http://saml.elastic-cloud.com/attributes/name\"" - ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_ATTRIBUTE_PRINCIPAL", - "type": "string", - "tags": [], - "label": "MOCK_IDP_ATTRIBUTE_PRINCIPAL", - "description": [], - "signature": [ - "\"http://saml.elastic-cloud.com/attributes/principal\"" - ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_ATTRIBUTE_ROLES", - "type": "string", - "tags": [], - "label": "MOCK_IDP_ATTRIBUTE_ROLES", - "description": [], - "signature": [ - "\"http://saml.elastic-cloud.com/attributes/roles\"" - ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_ENTITY_ID", - "type": "string", - "tags": [], - "label": "MOCK_IDP_ENTITY_ID", - "description": [], - "signature": [ - "\"urn:mock-idp\"" - ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_LOGIN_PATH", - "type": "string", - "tags": [], - "label": "MOCK_IDP_LOGIN_PATH", - "description": [], - "signature": [ - "\"/mock_idp/login\"" - ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_LOGOUT_PATH", - "type": "string", - "tags": [], - "label": "MOCK_IDP_LOGOUT_PATH", - "description": [], - "signature": [ - "\"/mock_idp/logout\"" - ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_METADATA_PATH", - "type": "string", - "tags": [], - "label": "MOCK_IDP_METADATA_PATH", - "description": [], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_PLUGIN_PATH", - "type": "string", - "tags": [], - "label": "MOCK_IDP_PLUGIN_PATH", - "description": [], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "mockIdpPlugin", "id": "def-common.MOCK_IDP_REALM_NAME", @@ -384,22 +48,7 @@ "signature": [ "\"mock-idp\"" ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, - { - "parentPluginId": "mockIdpPlugin", - "id": "def-common.MOCK_IDP_ROLE_MAPPING_NAME", - "type": "string", - "tags": [], - "label": "MOCK_IDP_ROLE_MAPPING_NAME", - "description": [], - "signature": [ - "\"mock-idp-mapping\"" - ], - "path": "packages/kbn-mock-idp-plugin/common/constants.ts", + "path": "packages/kbn-mock-idp-utils/src/constants.ts", "deprecated": false, "trackAdoption": false, "initialIsOpen": false diff --git a/api_docs/mock_idp_plugin.mdx b/api_docs/mock_idp_plugin.mdx index d4b39b356cba6..70e2a41c489d1 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'mockIdpPlugin'] --- import mockIdpPluginObj from './mock_idp_plugin.devdocs.json'; @@ -21,12 +21,14 @@ Contact [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana- | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 25 | 0 | 19 | 0 | +| 2 | 0 | 2 | 0 | -## Common +## Server + +### Consts, variables and types + -### Functions - +## Common ### Consts, variables and types diff --git a/api_docs/monitoring.mdx b/api_docs/monitoring.mdx index 2f971fff8ff49..4e97767e22db4 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-01-04 +date: 2024-01-25 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 be8ae0637856b..e6c7acff5a255 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-01-04 +date: 2024-01-25 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 9356cae6383b0..6d1c6b5a7f2c9 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-01-04 +date: 2024-01-25 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 9947a396715b1..6643e3f417dfe 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-01-04 +date: 2024-01-25 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 3031839874fc8..6b9c63fb9d24e 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-01-04 +date: 2024-01-25 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 68875d62f9d62..1f0953738cfd9 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-01-04 +date: 2024-01-25 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 905d4306e1661..f4f338f2c25cb 100644 --- a/api_docs/observability.devdocs.json +++ b/api_docs/observability.devdocs.json @@ -766,7 +766,9 @@ "section": "def-public.TopAlert", "text": "TopAlert" }, - "<{}> | undefined; alerts?: Record[] | undefined; isInApp?: boolean | undefined; observabilityRuleTypeRegistry: { register: (type: ", + "<{}> | undefined; rawAlert?: ", + "EcsFieldsResponse", + " | undefined; alerts?: Record[] | undefined; isInApp?: boolean | undefined; observabilityRuleTypeRegistry: { register: (type: ", { "pluginId": "observability", "scope": "public", @@ -784,7 +786,7 @@ }, " | undefined; list: () => string[]; }; selectedAlertId?: string | undefined; } & ", "CommonProps", - " & { as?: \"div\" | undefined; } & _EuiFlyoutProps & Omit, HTMLDivElement>, keyof _EuiFlyoutProps> & Omit, HTMLDivElement>, \"key\" | keyof React.HTMLAttributes | \"css\"> & { ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; }, \"type\" | \"prefix\" | \"key\" | \"id\" | \"defaultValue\" | \"security\" | \"children\" | \"ref\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"paddingSize\" | \"size\" | \"onClose\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"pushAnimation\" | \"focusTrapProps\" | \"includeFixedHeadersInFocusTrap\" | \"as\">, \"type\" | \"prefix\" | \"key\" | \"id\" | \"defaultValue\" | \"security\" | \"alert\" | \"children\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"slot\" | \"spellCheck\" | \"style\" | \"tabIndex\" | \"title\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"alerts\" | \"paddingSize\" | \"size\" | \"onClose\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"pushAnimation\" | \"focusTrapProps\" | \"includeFixedHeadersInFocusTrap\" | \"as\" | \"isInApp\" | \"observabilityRuleTypeRegistry\" | \"selectedAlertId\"> & { ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; }> & { readonly _result: ({ alert, alerts, isInApp, observabilityRuleTypeRegistry, onClose, selectedAlertId, }: AlertsFlyoutProps) => JSX.Element | null; }" + " & { as?: \"div\" | undefined; } & _EuiFlyoutProps & Omit, HTMLDivElement>, keyof _EuiFlyoutProps> & Omit, HTMLDivElement>, \"key\" | keyof React.HTMLAttributes | \"css\"> & { ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; }, \"type\" | \"prefix\" | \"key\" | \"id\" | \"defaultValue\" | \"security\" | \"children\" | \"ref\" | \"slot\" | \"style\" | \"title\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"paddingSize\" | \"size\" | \"onClose\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"pushAnimation\" | \"focusTrapProps\" | \"includeFixedHeadersInFocusTrap\" | \"as\">, \"type\" | \"prefix\" | \"key\" | \"id\" | \"defaultValue\" | \"security\" | \"alert\" | \"children\" | \"slot\" | \"style\" | \"title\" | \"onChange\" | \"defaultChecked\" | \"suppressContentEditableWarning\" | \"suppressHydrationWarning\" | \"accessKey\" | \"className\" | \"contentEditable\" | \"contextMenu\" | \"dir\" | \"draggable\" | \"hidden\" | \"lang\" | \"placeholder\" | \"spellCheck\" | \"tabIndex\" | \"translate\" | \"radioGroup\" | \"role\" | \"about\" | \"datatype\" | \"inlist\" | \"property\" | \"resource\" | \"typeof\" | \"vocab\" | \"autoCapitalize\" | \"autoCorrect\" | \"autoSave\" | \"color\" | \"itemProp\" | \"itemScope\" | \"itemType\" | \"itemID\" | \"itemRef\" | \"results\" | \"unselectable\" | \"inputMode\" | \"is\" | \"aria-activedescendant\" | \"aria-atomic\" | \"aria-autocomplete\" | \"aria-busy\" | \"aria-checked\" | \"aria-colcount\" | \"aria-colindex\" | \"aria-colspan\" | \"aria-controls\" | \"aria-current\" | \"aria-describedby\" | \"aria-details\" | \"aria-disabled\" | \"aria-dropeffect\" | \"aria-errormessage\" | \"aria-expanded\" | \"aria-flowto\" | \"aria-grabbed\" | \"aria-haspopup\" | \"aria-hidden\" | \"aria-invalid\" | \"aria-keyshortcuts\" | \"aria-label\" | \"aria-labelledby\" | \"aria-level\" | \"aria-live\" | \"aria-modal\" | \"aria-multiline\" | \"aria-multiselectable\" | \"aria-orientation\" | \"aria-owns\" | \"aria-placeholder\" | \"aria-posinset\" | \"aria-pressed\" | \"aria-readonly\" | \"aria-relevant\" | \"aria-required\" | \"aria-roledescription\" | \"aria-rowcount\" | \"aria-rowindex\" | \"aria-rowspan\" | \"aria-selected\" | \"aria-setsize\" | \"aria-sort\" | \"aria-valuemax\" | \"aria-valuemin\" | \"aria-valuenow\" | \"aria-valuetext\" | \"dangerouslySetInnerHTML\" | \"onCopy\" | \"onCopyCapture\" | \"onCut\" | \"onCutCapture\" | \"onPaste\" | \"onPasteCapture\" | \"onCompositionEnd\" | \"onCompositionEndCapture\" | \"onCompositionStart\" | \"onCompositionStartCapture\" | \"onCompositionUpdate\" | \"onCompositionUpdateCapture\" | \"onFocus\" | \"onFocusCapture\" | \"onBlur\" | \"onBlurCapture\" | \"onChangeCapture\" | \"onBeforeInput\" | \"onBeforeInputCapture\" | \"onInput\" | \"onInputCapture\" | \"onReset\" | \"onResetCapture\" | \"onSubmit\" | \"onSubmitCapture\" | \"onInvalid\" | \"onInvalidCapture\" | \"onLoad\" | \"onLoadCapture\" | \"onError\" | \"onErrorCapture\" | \"onKeyDown\" | \"onKeyDownCapture\" | \"onKeyPress\" | \"onKeyPressCapture\" | \"onKeyUp\" | \"onKeyUpCapture\" | \"onAbort\" | \"onAbortCapture\" | \"onCanPlay\" | \"onCanPlayCapture\" | \"onCanPlayThrough\" | \"onCanPlayThroughCapture\" | \"onDurationChange\" | \"onDurationChangeCapture\" | \"onEmptied\" | \"onEmptiedCapture\" | \"onEncrypted\" | \"onEncryptedCapture\" | \"onEnded\" | \"onEndedCapture\" | \"onLoadedData\" | \"onLoadedDataCapture\" | \"onLoadedMetadata\" | \"onLoadedMetadataCapture\" | \"onLoadStart\" | \"onLoadStartCapture\" | \"onPause\" | \"onPauseCapture\" | \"onPlay\" | \"onPlayCapture\" | \"onPlaying\" | \"onPlayingCapture\" | \"onProgress\" | \"onProgressCapture\" | \"onRateChange\" | \"onRateChangeCapture\" | \"onSeeked\" | \"onSeekedCapture\" | \"onSeeking\" | \"onSeekingCapture\" | \"onStalled\" | \"onStalledCapture\" | \"onSuspend\" | \"onSuspendCapture\" | \"onTimeUpdate\" | \"onTimeUpdateCapture\" | \"onVolumeChange\" | \"onVolumeChangeCapture\" | \"onWaiting\" | \"onWaitingCapture\" | \"onAuxClick\" | \"onAuxClickCapture\" | \"onClick\" | \"onClickCapture\" | \"onContextMenu\" | \"onContextMenuCapture\" | \"onDoubleClick\" | \"onDoubleClickCapture\" | \"onDrag\" | \"onDragCapture\" | \"onDragEnd\" | \"onDragEndCapture\" | \"onDragEnter\" | \"onDragEnterCapture\" | \"onDragExit\" | \"onDragExitCapture\" | \"onDragLeave\" | \"onDragLeaveCapture\" | \"onDragOver\" | \"onDragOverCapture\" | \"onDragStart\" | \"onDragStartCapture\" | \"onDrop\" | \"onDropCapture\" | \"onMouseDown\" | \"onMouseDownCapture\" | \"onMouseEnter\" | \"onMouseLeave\" | \"onMouseMove\" | \"onMouseMoveCapture\" | \"onMouseOut\" | \"onMouseOutCapture\" | \"onMouseOver\" | \"onMouseOverCapture\" | \"onMouseUp\" | \"onMouseUpCapture\" | \"onSelect\" | \"onSelectCapture\" | \"onTouchCancel\" | \"onTouchCancelCapture\" | \"onTouchEnd\" | \"onTouchEndCapture\" | \"onTouchMove\" | \"onTouchMoveCapture\" | \"onTouchStart\" | \"onTouchStartCapture\" | \"onPointerDown\" | \"onPointerDownCapture\" | \"onPointerMove\" | \"onPointerMoveCapture\" | \"onPointerUp\" | \"onPointerUpCapture\" | \"onPointerCancel\" | \"onPointerCancelCapture\" | \"onPointerEnter\" | \"onPointerEnterCapture\" | \"onPointerLeave\" | \"onPointerLeaveCapture\" | \"onPointerOver\" | \"onPointerOverCapture\" | \"onPointerOut\" | \"onPointerOutCapture\" | \"onGotPointerCapture\" | \"onGotPointerCaptureCapture\" | \"onLostPointerCapture\" | \"onLostPointerCaptureCapture\" | \"onScroll\" | \"onScrollCapture\" | \"onWheel\" | \"onWheelCapture\" | \"onAnimationStart\" | \"onAnimationStartCapture\" | \"onAnimationEnd\" | \"onAnimationEndCapture\" | \"onAnimationIteration\" | \"onAnimationIterationCapture\" | \"onTransitionEnd\" | \"onTransitionEndCapture\" | \"data-test-subj\" | \"css\" | \"alerts\" | \"paddingSize\" | \"size\" | \"onClose\" | \"maxWidth\" | \"ownFocus\" | \"hideCloseButton\" | \"closeButtonProps\" | \"closeButtonPosition\" | \"maskProps\" | \"outsideClickCloses\" | \"side\" | \"pushMinBreakpoint\" | \"pushAnimation\" | \"focusTrapProps\" | \"includeFixedHeadersInFocusTrap\" | \"as\" | \"rawAlert\" | \"isInApp\" | \"observabilityRuleTypeRegistry\" | \"selectedAlertId\"> & { ref?: ((instance: HTMLDivElement | null) => void) | React.RefObject | null | undefined; }> & { readonly _result: ({ alert, rawAlert, alerts, isInApp, observabilityRuleTypeRegistry, onClose, selectedAlertId, }: AlertsFlyoutProps) => JSX.Element | null; }" ], "path": "x-pack/plugins/observability/public/index.ts", "deprecated": false, @@ -2434,6 +2436,28 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "observability", + "id": "def-public.ObservabilityPublicPluginsSetup.fieldFormats", + "type": "Object", + "tags": [], + "label": "fieldFormats", + "description": [], + "signature": [ + "{ register: (fieldFormats: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormatInstanceType", + "text": "FieldFormatInstanceType" + }, + "[]) => void; has: (id: string) => boolean; }" + ], + "path": "x-pack/plugins/observability/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "observability", "id": "def-public.ObservabilityPublicPluginsSetup.observabilityShared", @@ -2972,6 +2996,36 @@ "deprecated": false, "trackAdoption": false }, + { + "parentPluginId": "observability", + "id": "def-public.ObservabilityPublicPluginsStart.fieldFormats", + "type": "CompoundType", + "tags": [], + "label": "fieldFormats", + "description": [], + "signature": [ + "Omit<", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FieldFormatsRegistry", + "text": "FieldFormatsRegistry" + }, + ", \"init\" | \"register\"> & { deserialize: ", + { + "pluginId": "fieldFormats", + "scope": "common", + "docId": "kibFieldFormatsPluginApi", + "section": "def-common.FormatFactory", + "text": "FormatFactory" + }, + "; }" + ], + "path": "x-pack/plugins/observability/public/plugin.ts", + "deprecated": false, + "trackAdoption": false + }, { "parentPluginId": "observability", "id": "def-public.ObservabilityPublicPluginsStart.guidedOnboarding", @@ -3463,7 +3517,15 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + "[]>; readonly getFrequentlyChangingActionsForTrigger: (triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", @@ -4195,6 +4257,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observability", + "id": "def-public.apmEnableTableSearchBar", + "type": "string", + "tags": [], + "label": "apmEnableTableSearchBar", + "description": [], + "signature": [ + "\"observability:apmEnableTableSearchBar\"" + ], + "path": "x-pack/plugins/observability/common/ui_settings_keys.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observability", "id": "def-public.apmServiceGroupMaxNumberOfServices", @@ -9275,7 +9352,9 @@ "PartialC", "<{ query: ", "PartialC", - "<{ kqlQuery: ", + "<{ filters: ", + "StringC", + "; kqlQuery: ", "StringC", "; page: ", "StringC", @@ -9305,7 +9384,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - " & { params?: { query?: { kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string; total: string; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"cardinality\" | \"last_value\" | \"std_deviation\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); } & { filter?: string | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; revision: number; settings: { syncDelay: string; frequency: string; }; enabled: boolean; tags: string[]; groupBy: string; createdAt: string; updatedAt: string; version: number; } & { instanceId?: string | undefined; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; })[]; }>; } & ", + " & { params?: { query?: { filters?: string | undefined; kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string; total: string; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"cardinality\" | \"last_value\" | \"std_deviation\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); } & { filter?: string | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; revision: number; settings: { syncDelay: string; frequency: string; }; enabled: boolean; tags: string[]; groupBy: string; createdAt: string; updatedAt: string; version: number; } & { instanceId?: string | undefined; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; })[]; }>; } & ", { "pluginId": "observability", "scope": "server", @@ -11549,7 +11628,9 @@ "PartialC", "<{ query: ", "PartialC", - "<{ kqlQuery: ", + "<{ filters: ", + "StringC", + "; kqlQuery: ", "StringC", "; page: ", "StringC", @@ -11579,7 +11660,7 @@ "section": "def-server.ObservabilityRouteHandlerResources", "text": "ObservabilityRouteHandlerResources" }, - " & { params?: { query?: { kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string; total: string; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"cardinality\" | \"last_value\" | \"std_deviation\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); } & { filter?: string | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; revision: number; settings: { syncDelay: string; frequency: string; }; enabled: boolean; tags: string[]; groupBy: string; createdAt: string; updatedAt: string; version: number; } & { instanceId?: string | undefined; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; })[]; }>; } & ", + " & { params?: { query?: { filters?: string | undefined; kqlQuery?: string | undefined; page?: string | undefined; perPage?: string | undefined; sortBy?: \"status\" | \"error_budget_consumed\" | \"error_budget_remaining\" | \"sli_value\" | undefined; sortDirection?: \"asc\" | \"desc\" | undefined; } | undefined; } | undefined; }) => Promise<{ page: number; perPage: number; total: number; results: ({ id: string; name: string; description: string; indicator: { type: \"sli.apm.transactionDuration\"; params: { environment: string; service: string; transactionType: string; transactionName: string; threshold: number; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.apm.transactionErrorRate\"; params: { environment: string; service: string; transactionType: string; transactionName: string; index: string; } & { filter?: string | undefined; }; } | { type: \"sli.kql.custom\"; params: { index: string; good: string; total: string; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.custom\"; params: { index: string; good: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; total: { metrics: (({ name: string; aggregation: \"sum\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }))[]; equation: string; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.metric.timeslice\"; params: { index: string; metric: { metrics: (({ name: string; aggregation: \"min\" | \"max\" | \"sum\" | \"avg\" | \"cardinality\" | \"last_value\" | \"std_deviation\"; field: string; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"doc_count\"; } & { filter?: string | undefined; }) | ({ name: string; aggregation: \"percentile\"; field: string; percentile: number; } & { filter?: string | undefined; }))[]; equation: string; threshold: number; comparator: \"GT\" | \"GTE\" | \"LT\" | \"LTE\"; }; timestampField: string; } & { filter?: string | undefined; }; } | { type: \"sli.histogram.custom\"; params: { index: string; timestampField: string; good: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); total: ({ field: string; aggregation: \"value_count\"; } & { filter?: string | undefined; }) | ({ field: string; aggregation: \"range\"; from: number; to: number; } & { filter?: string | undefined; }); } & { filter?: string | undefined; }; }; timeWindow: { duration: string; type: \"rolling\"; } | { duration: string; type: \"calendarAligned\"; }; budgetingMethod: \"occurrences\" | \"timeslices\"; objective: { target: number; } & { timesliceTarget?: number | undefined; timesliceWindow?: string | undefined; }; revision: number; settings: { syncDelay: string; frequency: string; }; enabled: boolean; tags: string[]; groupBy: string; createdAt: string; updatedAt: string; version: number; } & { instanceId?: string | undefined; } & { summary: { status: \"HEALTHY\" | \"NO_DATA\" | \"DEGRADING\" | \"VIOLATED\"; sliValue: number; errorBudget: { initial: number; consumed: number; remaining: number; isEstimated: boolean; }; }; })[]; }>; } & ", { "pluginId": "observability", "scope": "server", @@ -14341,6 +14422,118 @@ } ] }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableTableSearchBar", + "type": "Object", + "tags": [], + "label": "[apmEnableTableSearchBar]", + "description": [], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableTableSearchBar.category", + "type": "Array", + "tags": [], + "label": "category", + "description": [], + "signature": [ + "string[]" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableTableSearchBar.name", + "type": "string", + "tags": [], + "label": "name", + "description": [], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableTableSearchBar.description", + "type": "string", + "tags": [], + "label": "description", + "description": [], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableTableSearchBar.schema", + "type": "Object", + "tags": [], + "label": "schema", + "description": [], + "signature": [ + { + "pluginId": "@kbn/config-schema", + "scope": "common", + "docId": "kibKbnConfigSchemaPluginApi", + "section": "def-common.Type", + "text": "Type" + }, + "" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableTableSearchBar.value", + "type": "boolean", + "tags": [], + "label": "value", + "description": [], + "signature": [ + "false" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableTableSearchBar.requiresPageReload", + "type": "boolean", + "tags": [], + "label": "requiresPageReload", + "description": [], + "signature": [ + "false" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "observability", + "id": "def-server.uiSettings.apmEnableTableSearchBar.type", + "type": "string", + "tags": [], + "label": "type", + "description": [], + "signature": [ + "\"boolean\"" + ], + "path": "x-pack/plugins/observability/server/ui_settings.ts", + "deprecated": false, + "trackAdoption": false + } + ] + }, { "parentPluginId": "observability", "id": "def-server.uiSettings.apmAWSLambdaPriceFactor", @@ -16743,6 +16936,21 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "observability", + "id": "def-common.apmEnableTableSearchBar", + "type": "string", + "tags": [], + "label": "apmEnableTableSearchBar", + "description": [], + "signature": [ + "\"observability:apmEnableTableSearchBar\"" + ], + "path": "x-pack/plugins/observability/common/ui_settings_keys.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "observability", "id": "def-common.apmLabsButton", @@ -17401,7 +17609,7 @@ "label": "TimeUnitChar", "description": [], "signature": [ - "\"m\" | \"d\" | \"h\" | \"s\"" + "\"m\" | \"s\" | \"d\" | \"h\"" ], "path": "x-pack/plugins/observability/common/utils/formatters/duration.ts", "deprecated": false, diff --git a/api_docs/observability.mdx b/api_docs/observability.mdx index bbb951a816d2a..241c3a7f0d2be 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 603 | 2 | 594 | 17 | +| 615 | 2 | 606 | 17 | ## Client diff --git a/api_docs/observability_a_i_assistant.devdocs.json b/api_docs/observability_a_i_assistant.devdocs.json index 9f6c3916d3271..1c17941059fad 100644 --- a/api_docs/observability_a_i_assistant.devdocs.json +++ b/api_docs/observability_a_i_assistant.devdocs.json @@ -803,8 +803,6 @@ ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", - "IntersectionC", - "<[", "TypeC", "<{ body: ", "IntersectionC", @@ -846,13 +844,7 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }>, ", - "PartialC", - "<{ query: ", - "TypeC", - "<{ stream: ", - "Type", - "; }>; }>]> | undefined; handler: ({}: ", + "; }>]>; }> | undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", " & { params: { body: { messages: ", { @@ -862,13 +854,11 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; } & { query?: { stream: boolean; } | undefined; }; }) => Promise<", + "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", "Readable", - " | ", - "ChatCompletion", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", - "; }, TEndpoint> & Omit & { signal: AbortSignal | null; }>) => Promise<", + "; }, TEndpoint> & Omit & { signal: AbortSignal | null; }>) => Promise<", { "pluginId": "@kbn/server-route-repository", "scope": "common", @@ -1309,8 +1299,6 @@ ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", - "IntersectionC", - "<[", "TypeC", "<{ body: ", "IntersectionC", @@ -1352,13 +1340,7 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }>, ", - "PartialC", - "<{ query: ", - "TypeC", - "<{ stream: ", - "Type", - "; }>; }>]> | undefined; handler: ({}: ", + "; }>]>; }> | undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", " & { params: { body: { messages: ", { @@ -1368,10 +1350,8 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; } & { query?: { stream: boolean; } | undefined; }; }) => Promise<", + "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", "Readable", - " | ", - "ChatCompletion", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; }, TEndpoint>>" @@ -2055,8 +2035,6 @@ ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", - "IntersectionC", - "<[", "TypeC", "<{ body: ", "IntersectionC", @@ -2098,13 +2076,7 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }>, ", - "PartialC", - "<{ query: ", - "TypeC", - "<{ stream: ", - "Type", - "; }>; }>]> | undefined; handler: ({}: ", + "; }>]>; }> | undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", " & { params: { body: { messages: ", { @@ -2114,10 +2086,8 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; } & { query?: { stream: boolean; } | undefined; }; }) => Promise<", + "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", "Readable", - " | ", - "ChatCompletion", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; }[TEndpoint] extends { endpoint: any; params?: any; handler: ({}: any) => Promise; } & ", @@ -2570,8 +2540,6 @@ ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", - "IntersectionC", - "<[", "TypeC", "<{ body: ", "IntersectionC", @@ -2613,13 +2581,7 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }>, ", - "PartialC", - "<{ query: ", - "TypeC", - "<{ stream: ", - "Type", - "; }>; }>]> | undefined; handler: ({}: ", + "; }>]>; }> | undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", " & { params: { body: { messages: ", { @@ -2629,13 +2591,19 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; } & { query?: { stream: boolean; } | undefined; }; }) => Promise<", + "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", "Readable", - " | ", - "ChatCompletion", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", - "; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT | undefined; handler: ({}: any) => Promise; } & ", + "; }[TEndpoint] extends { endpoint: any; params?: infer TRouteParamsRT extends ", + { + "pluginId": "@kbn/server-route-repository", + "scope": "common", + "docId": "kibKbnServerRouteRepositoryPluginApi", + "section": "def-common.RouteParamsRT", + "text": "RouteParamsRT" + }, + " | undefined | undefined; handler: ({}: any) => Promise; } & ", "ServerRouteCreateOptions", " ? TRouteParamsRT extends ", { @@ -3221,8 +3189,6 @@ ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; \"POST /internal/observability_ai_assistant/chat\": { endpoint: \"POST /internal/observability_ai_assistant/chat\"; params?: ", - "IntersectionC", - "<[", "TypeC", "<{ body: ", "IntersectionC", @@ -3264,13 +3230,7 @@ "PartialC", "<{ functionCall: ", "StringC", - "; }>]>; }>, ", - "PartialC", - "<{ query: ", - "TypeC", - "<{ stream: ", - "Type", - "; }>; }>]> | undefined; handler: ({}: ", + "; }>]>; }> | undefined; handler: ({}: ", "ObservabilityAIAssistantRouteHandlerResources", " & { params: { body: { messages: ", { @@ -3280,10 +3240,8 @@ "section": "def-common.Message", "text": "Message" }, - "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; } & { query?: { stream: boolean; } | undefined; }; }) => Promise<", + "[]; connectorId: string; functions: { name: string; description: string; parameters: any; }[]; } & { functionCall?: string | undefined; }; }; }) => Promise<", "Readable", - " | ", - "ChatCompletion", ">; } & ", "ObservabilityAIAssistantRouteCreateOptions", "; }" diff --git a/api_docs/observability_a_i_assistant.mdx b/api_docs/observability_a_i_assistant.mdx index 3f95923dd0f9c..ee4ad64330ab1 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityAIAssistant'] --- import observabilityAIAssistantObj from './observability_a_i_assistant.devdocs.json'; diff --git a/api_docs/observability_log_explorer.mdx b/api_docs/observability_log_explorer.mdx index 302ac71a55f4f..54696f7c22545 100644 --- a/api_docs/observability_log_explorer.mdx +++ b/api_docs/observability_log_explorer.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/observabilityLogExplorer title: "observabilityLogExplorer" image: https://source.unsplash.com/400x175/?github description: API docs for the observabilityLogExplorer plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'observabilityLogExplorer'] --- import observabilityLogExplorerObj from './observability_log_explorer.devdocs.json'; diff --git a/api_docs/observability_onboarding.mdx b/api_docs/observability_onboarding.mdx index da8442b82ed09..50c742ccce704 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-01-04 +date: 2024-01-25 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 fb0a79a236383..e84330bda7aff 100644 --- a/api_docs/observability_shared.devdocs.json +++ b/api_docs/observability_shared.devdocs.json @@ -302,6 +302,39 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-public.BottomBarActions", + "type": "Function", + "tags": [], + "label": "BottomBarActions", + "description": [], + "signature": [ + "({ isLoading, onDiscardChanges, onSave, unsavedChangesCount, saveLabel, appTestSubj, areChangesInvalid, }: Props) => JSX.Element" + ], + "path": "x-pack/plugins/observability_shared/public/components/bottom_bar_actions/bottom_bar_actions.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-public.BottomBarActions.$1", + "type": "Object", + "tags": [], + "label": "{\n isLoading,\n onDiscardChanges,\n onSave,\n unsavedChangesCount,\n saveLabel,\n appTestSubj,\n areChangesInvalid = false,\n}", + "description": [], + "signature": [ + "Props" + ], + "path": "x-pack/plugins/observability_shared/public/components/bottom_bar_actions/bottom_bar_actions.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-public.createEsParams", @@ -481,6 +514,39 @@ "returnComment": [], "initialIsOpen": false }, + { + "parentPluginId": "observabilityShared", + "id": "def-public.FeatureFeedbackButton", + "type": "Function", + "tags": [], + "label": "FeatureFeedbackButton", + "description": [], + "signature": [ + "({ formUrl, \"data-test-subj\": dts, onClickCapture, defaultButton, kibanaVersion, isCloudEnv, isServerlessEnv, sanitizedPath, surveyButtonText, }: FeatureFeedbackButtonProps) => JSX.Element" + ], + "path": "x-pack/plugins/observability_shared/public/components/feature_feedback_button/feature_feedback_button.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "observabilityShared", + "id": "def-public.FeatureFeedbackButton.$1", + "type": "Object", + "tags": [], + "label": "{\n formUrl,\n 'data-test-subj': dts,\n onClickCapture,\n defaultButton,\n kibanaVersion,\n isCloudEnv,\n isServerlessEnv,\n sanitizedPath,\n surveyButtonText = (\n \n ),\n}", + "description": [], + "signature": [ + "FeatureFeedbackButtonProps" + ], + "path": "x-pack/plugins/observability_shared/public/components/feature_feedback_button/feature_feedback_button.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, { "parentPluginId": "observabilityShared", "id": "def-public.getContextMenuItemsFromActions", @@ -596,7 +662,15 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + "[]>; readonly getFrequentlyChangingActionsForTrigger: (triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", @@ -910,7 +984,7 @@ "DisambiguateSet", ", Omit, \"href\">> & Omit, \"href\">) | (", "DisambiguateSet", - ", \"href\">, React.ButtonHTMLAttributes> & React.ButtonHTMLAttributes))), \"color\" | \"onClick\" | \"rel\" | \"target\"> & { size?: \"m\" | \"s\" | \"l\" | \"xs\" | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; label: React.ReactNode; isActive?: boolean | undefined; isDisabled?: boolean | undefined; href?: string | undefined; target?: string | undefined; rel?: string | undefined; iconType?: ", + ", \"href\">, React.ButtonHTMLAttributes> & React.ButtonHTMLAttributes))), \"color\" | \"onClick\" | \"rel\" | \"target\"> & { size?: \"m\" | \"s\" | \"l\" | \"xs\" | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; label: React.ReactNode; isActive?: boolean | undefined; isDisabled?: boolean | undefined; href?: string | undefined; rel?: string | undefined; target?: string | undefined; external?: boolean | undefined; iconType?: ", "IconType", " | undefined; iconProps?: Omit<", "EuiIconProps", @@ -949,7 +1023,7 @@ "DisambiguateSet", ", Omit, \"href\">> & Omit, \"href\">) | (", "DisambiguateSet", - ", \"href\">, React.ButtonHTMLAttributes> & React.ButtonHTMLAttributes))), \"color\" | \"onClick\" | \"rel\" | \"target\"> & { size?: \"m\" | \"s\" | \"l\" | \"xs\" | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; label: React.ReactNode; isActive?: boolean | undefined; isDisabled?: boolean | undefined; href?: string | undefined; target?: string | undefined; rel?: string | undefined; iconType?: ", + ", \"href\">, React.ButtonHTMLAttributes> & React.ButtonHTMLAttributes))), \"color\" | \"onClick\" | \"rel\" | \"target\"> & { size?: \"m\" | \"s\" | \"l\" | \"xs\" | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; label: React.ReactNode; isActive?: boolean | undefined; isDisabled?: boolean | undefined; href?: string | undefined; rel?: string | undefined; target?: string | undefined; external?: boolean | undefined; iconType?: ", "IconType", " | undefined; iconProps?: Omit<", "EuiIconProps", @@ -1202,7 +1276,15 @@ "section": "def-common.ChromeBreadcrumb", "text": "ChromeBreadcrumb" }, - "[], app?: { id: string; label: string; } | undefined) => void" + "[], app?: { id: string; label: string; } | undefined, breadcrumbsAppendExtension?: ", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeBreadcrumbsAppendExtension", + "text": "ChromeBreadcrumbsAppendExtension" + }, + " | undefined) => void" ], "path": "x-pack/plugins/observability_shared/public/hooks/use_breadcrumbs.ts", "deprecated": false, @@ -1264,6 +1346,28 @@ "trackAdoption": false } ] + }, + { + "parentPluginId": "observabilityShared", + "id": "def-public.useBreadcrumbs.$3", + "type": "Object", + "tags": [], + "label": "breadcrumbsAppendExtension", + "description": [], + "signature": [ + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.ChromeBreadcrumbsAppendExtension", + "text": "ChromeBreadcrumbsAppendExtension" + }, + " | undefined" + ], + "path": "x-pack/plugins/observability_shared/public/hooks/use_breadcrumbs.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": false } ], "returnComment": [], @@ -1302,25 +1406,55 @@ "signature": [ "(app: ", "ObservabilityApp", - ", settingsKeys: string[]) => { settingsEditableConfig: Record; unsavedChanges: Record { fields: Record; handleFieldChange: (key: string, fieldState: ", + "<", { - "pluginId": "advancedSettings", - "scope": "public", - "docId": "kibAdvancedSettingsPluginApi", - "section": "def-public.FieldState", - "text": "FieldState" + "pluginId": "@kbn/core-ui-settings-common", + "scope": "common", + "docId": "kibKbnCoreUiSettingsCommonPluginApi", + "section": "def-common.UiSettingsType", + "text": "UiSettingsType" + }, + ", string | number | boolean | (string | number)[] | null | undefined>>; unsavedChanges: Record>; handleFieldChange: ", + { + "pluginId": "@kbn/management-settings-types", + "scope": "common", + "docId": "kibKbnManagementSettingsTypesPluginApi", + "section": "def-common.OnFieldChangeFn", + "text": "OnFieldChangeFn" + }, + "<", + { + "pluginId": "@kbn/core-ui-settings-common", + "scope": "common", + "docId": "kibKbnCoreUiSettingsCommonPluginApi", + "section": "def-common.UiSettingsType", + "text": "UiSettingsType" }, - ") => void; saveAll: () => Promise; isSaving: boolean; cleanUnsavedChanges: () => void; }" + ">; saveAll: () => Promise; isSaving: boolean; cleanUnsavedChanges: () => void; }" ], "path": "x-pack/plugins/observability_shared/public/hooks/use_editable_settings.tsx", "deprecated": false, @@ -3089,7 +3223,7 @@ "DisambiguateSet", ", Omit, \"href\">> & Omit, \"href\">) | (", "DisambiguateSet", - ", \"href\">, React.ButtonHTMLAttributes> & React.ButtonHTMLAttributes))), \"color\" | \"onClick\" | \"rel\" | \"target\"> & { size?: \"m\" | \"s\" | \"l\" | \"xs\" | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; label: React.ReactNode; isActive?: boolean | undefined; isDisabled?: boolean | undefined; href?: string | undefined; target?: string | undefined; rel?: string | undefined; iconType?: ", + ", \"href\">, React.ButtonHTMLAttributes> & React.ButtonHTMLAttributes))), \"color\" | \"onClick\" | \"rel\" | \"target\"> & { size?: \"m\" | \"s\" | \"l\" | \"xs\" | undefined; color?: \"text\" | \"subdued\" | \"primary\" | undefined; label: React.ReactNode; isActive?: boolean | undefined; isDisabled?: boolean | undefined; href?: string | undefined; rel?: string | undefined; target?: string | undefined; external?: boolean | undefined; iconType?: ", "IconType", " | undefined; iconProps?: Omit<", "EuiIconProps", diff --git a/api_docs/observability_shared.mdx b/api_docs/observability_shared.mdx index 74848aaa6f3f1..06df629258a9b 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 310 | 1 | 305 | 15 | +| 315 | 1 | 310 | 15 | ## Client diff --git a/api_docs/osquery.devdocs.json b/api_docs/osquery.devdocs.json index 1935658c3a6e9..02d9f62e0978a 100644 --- a/api_docs/osquery.devdocs.json +++ b/api_docs/osquery.devdocs.json @@ -357,21 +357,6 @@ "trackAdoption": false, "initialIsOpen": false }, - { - "parentPluginId": "osquery", - "id": "def-common.DEFAULT_DARK_MODE", - "type": "string", - "tags": [], - "label": "DEFAULT_DARK_MODE", - "description": [], - "signature": [ - "\"theme:darkMode\"" - ], - "path": "x-pack/plugins/osquery/common/constants.ts", - "deprecated": false, - "trackAdoption": false, - "initialIsOpen": false - }, { "parentPluginId": "osquery", "id": "def-common.OSQUERY_INTEGRATION_NAME", diff --git a/api_docs/osquery.mdx b/api_docs/osquery.mdx index be0ab0aceff46..f76ac891945cf 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'osquery'] --- import osqueryObj from './osquery.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-defend-workflows](https://github.com/orgs/elastic/tea | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 24 | 0 | 24 | 7 | +| 23 | 0 | 23 | 7 | ## Client diff --git a/api_docs/painless_lab.mdx b/api_docs/painless_lab.mdx index be7778b29462f..77a97d63c510f 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-01-04 +date: 2024-01-25 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 c93080b72b3ad..5a7435b1509a2 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-01-04 +date: 2024-01-25 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 | |--------------|----------|------------------------| -| 739 | 630 | 41 | +| 749 | 641 | 41 | ### Public API health stats | API Count | Any Count | Missing comments | Missing exports | |--------------|----------|-----------------|--------| -| 78161 | 234 | 66877 | 1696 | +| 79402 | 230 | 67997 | 1708 | ## Plugin Directory @@ -32,7 +32,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 2 | 0 | 2 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | AIOps plugin maintained by ML team. | 70 | 1 | 4 | 1 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 825 | 1 | 794 | 51 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 834 | 1 | 803 | 51 | | | [@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 | 125 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 9 | 0 | 9 | 0 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | Asset manager plugin for entity assets (inventory, topology, etc) | 9 | 0 | 9 | 2 | @@ -47,10 +47,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | Defend for containers (D4C) | 52 | 0 | 43 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Provides the necessary APIs to implement A/B testing scenarios, fetching the variations in configuration and reporting back metrics to track conversion rates of the experiments. | 12 | 0 | 0 | 0 | | cloudFullStory | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers FullStory as a shipper for telemetry. | 0 | 0 | 0 | 0 | -| cloudGainsight | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | When Kibana runs on Elastic Cloud, this plugin registers Gainsight as a shipper for telemetry. | 0 | 0 | 0 | 0 | | cloudLinks | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | Adds the links to the Elastic Cloud console | 0 | 0 | 0 | 0 | | | [@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/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 13 | 0 | 13 | 1 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 29 | 0 | 23 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Content management app | 149 | 0 | 126 | 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 | 311 | 0 | 304 | 16 | | crossClusterReplication | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 0 | 0 | 0 | 0 | @@ -58,26 +57,26 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | Add custom data integrations so they can be displayed in the Fleet integrations app | 268 | 0 | 249 | 1 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds the Dashboard app to Kibana | 109 | 0 | 106 | 11 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 54 | 0 | 51 | 0 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | 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. | 3188 | 31 | 2537 | 22 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | 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. | 3233 | 31 | 2582 | 23 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin provides the ability to create data views via a modal flyout inside Kibana apps | 35 | 0 | 25 | 5 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | Reusable data view field editor across Kibana | 72 | 0 | 33 | 0 | | | [@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. | 922 | 0 | 257 | 4 | +| | [@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. | 938 | 0 | 273 | 4 | | | [@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 | 1 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin introduces the concept of dataset quality, where users can easily get an overview on the datasets they have. | 8 | 0 | 8 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 12 | 0 | 10 | 3 | -| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 137 | 0 | 91 | 21 | +| | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | This plugin contains the Discover application and the saved search embeddable. | 141 | 0 | 95 | 22 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 37 | 0 | 35 | 2 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | APIs used to assess the quality of data in Elasticsearch indexes | 2 | 0 | 0 | 0 | -| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | Server APIs for the Elastic AI Assistant | 36 | 0 | 28 | 0 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 547 | 1 | 446 | 8 | +| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | Server APIs for the Elastic AI Assistant | 41 | 0 | 27 | 0 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds embeddables service to Kibana | 520 | 1 | 420 | 8 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Extends embeddable plugin with more functionality | 14 | 0 | 14 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | This plugin provides encryption and decryption utilities for saved objects containing sensitive information. | 53 | 0 | 46 | 1 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Adds dashboards for discovering and managing Enterprise Search products. | 5 | 0 | 5 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 99 | 3 | 97 | 3 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | The Event Annotation service contains expressions for event annotations | 201 | 0 | 201 | 6 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | The listing page for event annotations. | 15 | 0 | 15 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 111 | 0 | 111 | 11 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 112 | 0 | 112 | 11 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 130 | 0 | 130 | 14 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'error' renderer to expressions | 17 | 0 | 15 | 2 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Gauge plugin adds a `gauge` renderer and function to the expression plugin. The renderer will display the `gauge` chart. | 59 | 0 | 59 | 2 | @@ -92,13 +91,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | Adds 'shape' function and renderer to expressions | 148 | 0 | 146 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression Tagcloud plugin adds a `tagcloud` renderer and function to the expression plugin. The renderer will display the `Wordcloud` chart. | 6 | 0 | 6 | 2 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Expression XY plugin adds a `xy` renderer and function to the expression plugin. The renderer will display the `xy` chart. | 177 | 0 | 167 | 13 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds expression runtime to Kibana | 2211 | 17 | 1752 | 5 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Adds expression runtime to Kibana | 2219 | 17 | 1757 | 5 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 235 | 0 | 99 | 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/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. | 59 | 0 | 59 | 2 | +| | [@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. | 76 | 0 | 76 | 4 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | File upload, download, sharing, and serving over HTTP implementation in Kibana. | 240 | 0 | 24 | 9 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Simple UI for managing files in Kibana | 2 | 0 | 2 | 0 | -| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1221 | 3 | 1103 | 48 | +| | [@elastic/fleet](https://github.com/orgs/elastic/teams/fleet) | - | 1222 | 3 | 1104 | 48 | | 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) | - | 68 | 0 | 14 | 5 | | globalSearchBar | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 0 | 0 | 0 | 0 | @@ -113,42 +112,43 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/infra-monitoring-ui](https://github.com/orgs/elastic/teams/infra-monitoring-ui) | This plugin visualizes data from Filebeat and Metricbeat, and integrates with other Observability solutions | 32 | 0 | 29 | 8 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-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) | - | 123 | 2 | 96 | 4 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 127 | 2 | 100 | 4 | | | [@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/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) | - | 163 | 0 | 129 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 152 | 0 | 120 | 3 | | kibanaUsageCollection | [@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) | - | 609 | 3 | 416 | 9 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 5 | 0 | 5 | 1 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 644 | 0 | 545 | 60 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | Visualization editor allowing to quickly and easily configure compelling visualizations to use on dashboards and canvas workpads. Exposes components to embed visualizations and link into the Lens editor from within other apps in Kibana. | 658 | 0 | 557 | 61 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 8 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 4 | 0 | 4 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 117 | 0 | 42 | 10 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | A dashboard panel for creating links to dashboards or external links. | 57 | 0 | 57 | 6 | | | [@elastic/security-detection-engine](https://github.com/orgs/elastic/teams/security-detection-engine) | - | 224 | 0 | 96 | 51 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin provides a LogExplorer component using the Discover customization framework, offering several affordances specifically designed for log consumption. | 87 | 0 | 87 | 16 | -| | [@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. | 291 | 11 | 276 | 26 | +| | [@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. | 302 | 0 | 287 | 32 | | logstash | [@elastic/logstash](https://github.com/orgs/elastic/teams/logstash) | - | 0 | 0 | 0 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 45 | 0 | 45 | 7 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 261 | 0 | 260 | 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 | 104 | 8 | 104 | 7 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | This plugin provides access to the machine learning features provided by Elastic. | 151 | 3 | 65 | 95 | -| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 25 | 0 | 19 | 0 | +| | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 2 | 0 | 2 | 0 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 15 | 3 | 13 | 1 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 9 | 0 | 9 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 42 | 0 | 42 | 3 | | | [@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) | - | 603 | 2 | 594 | 17 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 615 | 2 | 606 | 17 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 75 | 0 | 73 | 13 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | This plugin exposes and registers observability log consumption features. | 18 | 0 | 18 | 1 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 14 | 0 | 14 | 0 | -| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 310 | 1 | 305 | 15 | -| | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 24 | 0 | 24 | 7 | +| | [@elastic/observability-ui](https://github.com/orgs/elastic/teams/observability-ui) | - | 315 | 1 | 310 | 15 | +| | [@elastic/security-defend-workflows](https://github.com/orgs/elastic/teams/security-defend-workflows) | - | 23 | 0 | 23 | 7 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 2 | 0 | 2 | 0 | -| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 219 | 2 | 164 | 11 | +| | [@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 | 3 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). | 220 | 2 | 165 | 11 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 16 | 1 | 16 | 0 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 22 | 0 | 22 | 7 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 23 | 0 | 23 | 0 | @@ -166,10 +166,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-reporting-services](https://github.com/orgs/elastic/teams/kibana-reporting-services) | Kibana Screenshotting Plugin | 32 | 0 | 8 | 4 | | searchprofiler | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-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. | 402 | 0 | 196 | 2 | -| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 186 | 0 | 117 | 36 | +| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 193 | 0 | 124 | 37 | | | [@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 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | The core Serverless plugin, providing APIs to Serverless Project plugins. | 19 | 0 | 18 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | The core Serverless plugin, providing APIs to Serverless Project plugins. | 21 | 0 | 20 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Serverless customizations for observability. | 6 | 0 | 6 | 0 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | Serverless customizations for search. | 6 | 0 | 6 | 0 | | | [@elastic/kibana-cloud-security-posture](https://github.com/orgs/elastic/teams/kibana-cloud-security-posture) | - | 134 | 0 | 134 | 8 | @@ -189,8 +189,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 240 | 1 | 196 | 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) | - | 595 | 1 | 569 | 58 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 135 | 0 | 93 | 9 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 596 | 1 | 570 | 58 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | Adds UI Actions service to Kibana | 149 | 0 | 103 | 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). | 10 | 0 | 7 | 2 | | | [@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. | 55 | 0 | 23 | 2 | @@ -227,9 +227,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 20 | 0 | 0 | 0 | | | [@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) | - | 23 | 0 | 22 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 29 | 0 | 29 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 30 | 0 | 30 | 0 | -| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 83 | 0 | 82 | 1 | +| | [@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) | - | 31 | 0 | 31 | 0 | +| | [@elastic/response-ops](https://github.com/orgs/elastic/teams/response-ops) | - | 95 | 0 | 90 | 1 | | | [@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) | - | 98 | 0 | 0 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 1 | 0 | 0 | 0 | @@ -237,9 +237,8 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 23 | 0 | 0 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 0 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 22 | 0 | 1 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 18 | 0 | 2 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 17 | 0 | 17 | 0 | -| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 34 | 0 | 34 | 8 | +| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 44 | 0 | 44 | 8 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 188 | 0 | 188 | 28 | | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 11 | 0 | 11 | 0 | | | [@elastic/kibana-qa](https://github.com/orgs/elastic/teams/kibana-qa) | - | 12 | 0 | 12 | 0 | @@ -248,13 +247,14 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@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/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 60 | 1 | 42 | 3 | -| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 14 | 0 | 10 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 27 | 0 | 22 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 78 | 0 | 78 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 7 | 0 | 2 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 3 | 0 | 3 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 62 | 0 | 17 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 2 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 26 | 0 | 9 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 34 | 0 | 15 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | | | [@elastic/appex-qa](https://github.com/orgs/elastic/teams/appex-qa) | - | 8 | 0 | 4 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 206 | 0 | 169 | 8 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 76 | 0 | 47 | 9 | @@ -287,7 +287,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 0 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 20 | 0 | 7 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 166 | 0 | 70 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 193 | 0 | 93 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 3 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 8 | 0 | @@ -333,9 +333,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 22 | 0 | 7 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 9 | 0 | 9 | 3 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 26 | 6 | 26 | 2 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 27 | 7 | 27 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 13 | 0 | 13 | 1 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 454 | 1 | 179 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 457 | 1 | 180 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 58 | 0 | 52 | 9 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 44 | 0 | 43 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 2 | 0 | @@ -385,15 +385,15 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 111 | 1 | 0 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 353 | 1 | 5 | 2 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 11 | 0 | 11 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 98 | 0 | 66 | 10 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 112 | 0 | 71 | 10 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 5 | 0 | 5 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 2 | 0 | 1 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 6 | 0 | 6 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 7 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 73 | 0 | 40 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 26 | 0 | 23 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 4 | 0 | 4 | 0 | -| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 125 | 0 | 91 | 47 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 129 | 0 | 94 | 45 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 12 | 0 | 12 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 555 | 1 | 130 | 4 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 69 | 0 | 69 | 4 | @@ -430,7 +430,9 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 16 | 0 | 16 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 19 | 0 | 17 | 6 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 2 | 0 | +| | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 26 | 0 | 26 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 14 | 0 | 9 | 0 | +| | [@elastic/security-threat-hunting-explore](https://github.com/orgs/elastic/teams/security-threat-hunting-explore) | - | 80 | 0 | 80 | 1 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 44 | 0 | 43 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 5 | 0 | 5 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 5 | 0 | 5 | 0 | @@ -448,31 +450,31 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 36 | 2 | 32 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 59 | 0 | 37 | 4 | | | [@elastic/docs](https://github.com/orgs/elastic/teams/docs) | - | 75 | 0 | 75 | 2 | -| | [@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) | - | 5 | 0 | 5 | 1 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 39 | 0 | 26 | 5 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 19 | 0 | 11 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 35125 | 0 | 34718 | 0 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 13 | 0 | 5 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 35 | 0 | 34 | 0 | | | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 104 | 0 | 84 | 6 | -| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 30 | 0 | 30 | 0 | -| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 48 | 0 | 33 | 7 | +| | [@elastic/security-solution](https://github.com/orgs/elastic/teams/security-solution) | - | 34 | 0 | 32 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 50 | 0 | 35 | 7 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 27 | 0 | 14 | 1 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 7 | 0 | 3 | 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) | - | 26 | 0 | 26 | 0 | +| | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 30 | 0 | 30 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 39 | 0 | 39 | 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) | - | 17 | 0 | 7 | 2 | +| | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 40 | 0 | 16 | 1 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 16 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 37 | 0 | 29 | 1 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 0 | 0 | -| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 29 | 0 | 29 | 1 | -| | [@elastic/appex-qa](https://github.com/orgs/elastic/teams/appex-qa) | - | 4 | 0 | 4 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 31 | 0 | 31 | 1 | +| | [@elastic/appex-qa](https://github.com/orgs/elastic/teams/appex-qa) | - | 550 | 6 | 510 | 2 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 1 | 0 | 0 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 1 | 0 | 1 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 10 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 25 | 0 | 25 | 1 | | | [@elastic/platform-onboarding](https://github.com/orgs/elastic/teams/platform-onboarding) | - | 49 | 0 | 47 | 0 | | | [@elastic/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 33 | 3 | 24 | 6 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 3 | 0 | 3 | 0 | @@ -494,6 +496,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) | - | 27 | 0 | 1 | 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-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 1 | 1 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 11 | 0 | 10 | 2 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 9 | 0 | 6 | 2 | @@ -502,10 +505,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 23 | 0 | 7 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 8 | 0 | 2 | 3 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 45 | 0 | 0 | 0 | -| | [@elastic/appex-sharedux @elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 132 | 0 | 130 | 0 | +| | [@elastic/appex-sharedux @elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 133 | 0 | 131 | 0 | | | [@elastic/appex-sharedux @elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/appex-sharedux ) | - | 20 | 0 | 11 | 0 | -| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 81 | 0 | 3 | 0 | -| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 54 | 0 | 6 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 83 | 0 | 5 | 0 | +| | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 56 | 0 | 6 | 0 | | | [@elastic/platform-deployment-management](https://github.com/orgs/elastic/teams/platform-deployment-management) | - | 2 | 0 | 0 | 0 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 592 | 1 | 1 | 0 | | | [@elastic/kibana-gis](https://github.com/orgs/elastic/teams/kibana-gis) | - | 2 | 0 | 2 | 0 | @@ -518,7 +521,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 48 | 0 | 0 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 11 | 0 | 0 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 36 | 4 | 8 | 0 | -| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 11 | 0 | 0 | 0 | +| | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 12 | 0 | 1 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 2 | 0 | 0 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 3 | 0 | 2 | 0 | | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 5 | 0 | 3 | 0 | @@ -533,21 +536,26 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/ml-ui](https://github.com/orgs/elastic/teams/ml-ui) | - | 33 | 0 | 28 | 0 | | | [@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/kibana-security](https://github.com/orgs/elastic/teams/kibana-security) | - | 25 | 0 | 18 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 98 | 0 | 96 | 2 | | | [@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) | - | 99 | 1 | 99 | 0 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 3 | 0 | 3 | 1 | | | [@elastic/security-detection-rule-management](https://github.com/orgs/elastic/teams/security-detection-rule-management) | - | 6 | 0 | 6 | 0 | -| | [@elastic/security-detection-rule-management](https://github.com/orgs/elastic/teams/security-detection-rule-management) | - | 7 | 0 | 7 | 0 | +| | [@elastic/security-detection-rule-management](https://github.com/orgs/elastic/teams/security-detection-rule-management) | - | 13 | 0 | 13 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 45 | 0 | 45 | 10 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 51 | 5 | 34 | 0 | | | [@elastic/security-asset-management](https://github.com/orgs/elastic/teams/security-asset-management) | - | 66 | 0 | 66 | 0 | | | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-performance-testing](https://github.com/orgs/elastic/teams/kibana-performance-testing) | - | 3 | 0 | 3 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 1 | 0 | 0 | 0 | | | [@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/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 163 | 0 | 45 | 0 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 34 | 0 | 33 | 0 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 10 | 0 | 10 | 0 | +| | [@elastic/kibana-presentation](https://github.com/orgs/elastic/teams/kibana-presentation) | - | 139 | 0 | 105 | 0 | +| | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 156 | 0 | 45 | 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 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 2 | 0 | @@ -560,16 +568,16 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 40 | 0 | 38 | 5 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 0 | 9 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 6 | 0 | 6 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 80 | 0 | 72 | 7 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 50 | 0 | 50 | 3 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 80 | 0 | 72 | 8 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 52 | 0 | 52 | 3 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 23 | 0 | 20 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 31 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 34 | 0 | 33 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 14 | 0 | 11 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 16 | 0 | 15 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 17 | 0 | 16 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 13 | 0 | 11 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 6 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 78 | 0 | 77 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 80 | 0 | 79 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | A component for creating resizable layouts containing a fixed width panel and a flexible panel, with support for horizontal and vertical layouts. | 18 | 0 | 5 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 13 | 2 | 8 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 2 | 0 | 1 | 0 | @@ -577,7 +585,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/security-detections-response](https://github.com/orgs/elastic/teams/security-detections-response) | - | 120 | 0 | 117 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 0 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 75 | 0 | 75 | 0 | -| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 2663 | 0 | 2663 | 0 | +| | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 2735 | 0 | 2735 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 18 | 1 | 17 | 1 | | | [@elastic/enterprise-search-frontend](https://github.com/orgs/elastic/teams/enterprise-search-frontend) | - | 25 | 0 | 25 | 0 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 20 | 0 | 18 | 1 | @@ -617,10 +625,10 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/obs-ux-infra_services-team](https://github.com/orgs/elastic/teams/obs-ux-infra_services-team) | - | 4 | 0 | 4 | 0 | | | [@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) | - | 8 | 0 | 2 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 26 | 0 | 8 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 30 | 0 | 8 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 4 | 0 | | | [@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) | - | 61 | 0 | 48 | 5 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 23 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 6 | 0 | 2 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 5 | 0 | 4 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 3 | 0 | 2 | 0 | @@ -634,7 +642,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 10 | 0 | 9 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 2 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 32 | 0 | 31 | 0 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 14 | 0 | 5 | 1 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 18 | 0 | 9 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 17 | 0 | 17 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 8 | 0 | 3 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 25 | 0 | 24 | 0 | @@ -645,7 +653,7 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 24 | 0 | 24 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 27 | 0 | 26 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 5 | 0 | 3 | 1 | -| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 25 | 0 | 10 | 0 | +| | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 26 | 0 | 11 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 17 | 0 | 16 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 2 | 0 | 1 | 0 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 14 | 0 | 13 | 0 | @@ -655,11 +663,13 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 11 | 0 | 3 | 0 | | | [@elastic/obs-ux-management-team](https://github.com/orgs/elastic/teams/obs-ux-management-team) | - | 144 | 0 | 144 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 20 | 0 | 12 | 0 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 4 | 0 | 4 | 0 | | | [@elastic/kibana-core](https://github.com/orgs/elastic/teams/kibana-core) | - | 102 | 2 | 65 | 1 | | | [@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/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) | - | 311 | 4 | 263 | 12 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 314 | 4 | 266 | 12 | +| | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 14 | 0 | 8 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 137 | 5 | 105 | 2 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 2 | 0 | 1 | 0 | | | [@elastic/kibana-visualizations](https://github.com/orgs/elastic/teams/kibana-visualizations) | - | 26 | 0 | 10 | 0 | @@ -668,11 +678,11 @@ tags: ['contributor', 'dev', 'apidocs', 'kibana'] | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 39 | 0 | 25 | 1 | | | [@elastic/obs-knowledge-team](https://github.com/orgs/elastic/teams/obs-knowledge-team) | - | 86 | 0 | 86 | 1 | | | [@elastic/appex-sharedux](https://github.com/orgs/elastic/teams/appex-sharedux) | - | 44 | 0 | 30 | 0 | -| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 54 | 0 | 45 | 0 | +| | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 55 | 0 | 46 | 0 | | | [@elastic/kibana-operations](https://github.com/orgs/elastic/teams/kibana-operations) | - | 7 | 0 | 6 | 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 | 109 | 0 | 49 | 1 | +| | [@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 | 117 | 0 | 55 | 1 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 14 | 0 | 13 | 6 | -| | [@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 | 285 | 0 | 261 | 9 | +| | [@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 | 291 | 0 | 267 | 10 | | | [@elastic/kibana-data-discovery](https://github.com/orgs/elastic/teams/kibana-data-discovery) | - | 13 | 0 | 9 | 0 | | | [@elastic/security-threat-hunting-investigations](https://github.com/orgs/elastic/teams/security-threat-hunting-investigations) | - | 3 | 0 | 0 | 0 | | | [@elastic/obs-ux-logs-team](https://github.com/orgs/elastic/teams/obs-ux-logs-team) | - | 3 | 0 | 2 | 1 | diff --git a/api_docs/presentation_panel.devdocs.json b/api_docs/presentation_panel.devdocs.json new file mode 100644 index 0000000000000..a318a1c0b97e4 --- /dev/null +++ b/api_docs/presentation_panel.devdocs.json @@ -0,0 +1,570 @@ +{ + "id": "presentationPanel", + "client": { + "classes": [], + "functions": [ + { + "parentPluginId": "presentationPanel", + "id": "def-public.getEditPanelAction", + "type": "Function", + "tags": [], + "label": "getEditPanelAction", + "description": [], + "signature": [ + "() => ", + "EditPanelAction" + ], + "path": "src/plugins/presentation_panel/public/panel_actions/panel_actions.ts", + "deprecated": false, + "trackAdoption": false, + "children": [], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "presentationPanel", + "id": "def-public.PresentationPanel", + "type": "Function", + "tags": [], + "label": "PresentationPanel", + "description": [], + "signature": [ + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">>> = Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasUniqueId", + "text": "HasUniqueId" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataLoading", + "text": "PublishesDataLoading" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesBlockingError", + "text": "PublishesBlockingError" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDisabledActionIds", + "text": "PublishesDisabledActionIds" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasParentApi", + "text": "HasParentApi" + }, + "<", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + }, + " & Partial & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">>>, PropsType extends {} = {}>(props: ", + { + "pluginId": "presentationPanel", + "scope": "public", + "docId": "kibPresentationPanelPluginApi", + "section": "def-public.PresentationPanelProps", + "text": "PresentationPanelProps" + }, + ") => JSX.Element" + ], + "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "presentationPanel", + "id": "def-public.PresentationPanel.$1", + "type": "CompoundType", + "tags": [], + "label": "props", + "description": [], + "signature": [ + { + "pluginId": "presentationPanel", + "scope": "public", + "docId": "kibPresentationPanelPluginApi", + "section": "def-public.PresentationPanelProps", + "text": "PresentationPanelProps" + }, + "" + ], + "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel.tsx", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [], + "initialIsOpen": false + }, + { + "parentPluginId": "presentationPanel", + "id": "def-public.PresentationPanelError", + "type": "Function", + "tags": [], + "label": "PresentationPanelError", + "description": [], + "signature": [ + "({ api, error, }: { error: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.ErrorLike", + "text": "ErrorLike" + }, + "; api?: Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasUniqueId", + "text": "HasUniqueId" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataLoading", + "text": "PublishesDataLoading" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesBlockingError", + "text": "PublishesBlockingError" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDisabledActionIds", + "text": "PublishesDisabledActionIds" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasParentApi", + "text": "HasParentApi" + }, + "<", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + }, + " & Partial & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">>> | undefined; }) => JSX.Element" + ], + "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel_error.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "presentationPanel", + "id": "def-public.PresentationPanelError.$1", + "type": "Object", + "tags": [], + "label": "{\n api,\n error,\n}", + "description": [], + "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel_error.tsx", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "presentationPanel", + "id": "def-public.PresentationPanelError.$1.error", + "type": "CompoundType", + "tags": [], + "label": "error", + "description": [], + "signature": [ + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.SerializedError", + "text": "SerializedError" + }, + " & { original?: ", + { + "pluginId": "expressions", + "scope": "common", + "docId": "kibExpressionsPluginApi", + "section": "def-common.SerializedError", + "text": "SerializedError" + }, + " | undefined; }" + ], + "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel_error.tsx", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "presentationPanel", + "id": "def-public.PresentationPanelError.$1.api", + "type": "Object", + "tags": [], + "label": "api", + "description": [], + "signature": [ + "Partial<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasUniqueId", + "text": "HasUniqueId" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelTitle", + "text": "PublishesPanelTitle" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDataLoading", + "text": "PublishesDataLoading" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesBlockingError", + "text": "PublishesBlockingError" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesPanelDescription", + "text": "PublishesPanelDescription" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesDisabledActionIds", + "text": "PublishesDisabledActionIds" + }, + " & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.HasParentApi", + "text": "HasParentApi" + }, + "<", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + }, + " & Partial & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">>> | undefined" + ], + "path": "src/plugins/presentation_panel/public/panel_component/presentation_panel_error.tsx", + "deprecated": false, + "trackAdoption": false + } + ] + } + ], + "returnComment": [], + "initialIsOpen": false + } + ], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "presentationPanel", + "id": "def-public.ACTION_CUSTOMIZE_PANEL", + "type": "string", + "tags": [], + "label": "ACTION_CUSTOMIZE_PANEL", + "description": [], + "signature": [ + "\"ACTION_CUSTOMIZE_PANEL\"" + ], + "path": "src/plugins/presentation_panel/public/panel_actions/customize_panel_action/customize_panel_action.tsx", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "presentationPanel", + "id": "def-public.PresentationPanelProps", + "type": "Type", + "tags": [], + "label": "PresentationPanelProps", + "description": [], + "signature": [ + "Omit<", + "PresentationPanelInternalProps", + ", \"Component\"> & { Component: ", + { + "pluginId": "@kbn/utility-types", + "scope": "common", + "docId": "kibKbnUtilityTypesPluginApi", + "section": "def-common.MaybePromise", + "text": "MaybePromise" + }, + "<", + "PanelCompatibleComponent", + ">; }" + ], + "path": "src/plugins/presentation_panel/public/panel_component/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + }, + "server": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [], + "objects": [] + }, + "common": { + "classes": [], + "functions": [], + "interfaces": [], + "enums": [], + "misc": [ + { + "parentPluginId": "presentationPanel", + "id": "def-common.PLUGIN_ID", + "type": "string", + "tags": [], + "label": "PLUGIN_ID", + "description": [], + "signature": [ + "\"presentationPanel\"" + ], + "path": "src/plugins/presentation_panel/common/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "presentationPanel", + "id": "def-common.PLUGIN_NAME", + "type": "string", + "tags": [], + "label": "PLUGIN_NAME", + "description": [], + "signature": [ + "\"presentationPanel\"" + ], + "path": "src/plugins/presentation_panel/common/index.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], + "objects": [] + } +} \ No newline at end of file diff --git a/api_docs/presentation_panel.mdx b/api_docs/presentation_panel.mdx new file mode 100644 index 0000000000000..fd0cbb727e1c1 --- /dev/null +++ b/api_docs/presentation_panel.mdx @@ -0,0 +1,38 @@ +--- +#### +#### 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: kibPresentationPanelPluginApi +slug: /kibana-dev-docs/api/presentationPanel +title: "presentationPanel" +image: https://source.unsplash.com/400x175/?github +description: API docs for the presentationPanel plugin +date: 2024-01-25 +tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationPanel'] +--- +import presentationPanelObj from './presentation_panel.devdocs.json'; + +Adds a standardized Presentation panel which allows any forward ref component to interface with various Kibana systems. + +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 | +|-------------------|-----------|------------------------|-----------------| +| 11 | 0 | 11 | 3 | + +## Client + +### Functions + + +### Consts, variables and types + + +## Common + +### Consts, variables and types + + diff --git a/api_docs/presentation_util.devdocs.json b/api_docs/presentation_util.devdocs.json index 6a4ce95f96a32..1f5e66c1067a5 100644 --- a/api_docs/presentation_util.devdocs.json +++ b/api_docs/presentation_util.devdocs.json @@ -1186,7 +1186,7 @@ "section": "def-public.ExpressionInputProps", "text": "ExpressionInputProps" }, - " extends Pick, \"className\" | \"style\">" + " extends Pick, \"style\" | \"className\">" ], "path": "src/plugins/presentation_util/public/components/types.ts", "deprecated": false, @@ -1858,8 +1858,8 @@ "label": "store", "description": [], "signature": [ - "EnhancedStore", - ">" ], @@ -1937,7 +1937,7 @@ "label": "getState", "description": [], "signature": [ - "() => ReduxEmbeddableStateType" + "() => ReduxEmbeddableStateType & {}" ], "path": "src/plugins/presentation_util/public/redux_tools/redux_embeddables/types.ts", "deprecated": false, @@ -2027,8 +2027,8 @@ "label": "store", "description": [], "signature": [ - "EnhancedStore", - ">" ], @@ -2106,7 +2106,7 @@ "label": "getState", "description": [], "signature": [ - "() => ReduxStateType" + "() => ReduxStateType & {}" ], "path": "src/plugins/presentation_util/public/redux_tools/types.ts", "deprecated": false, @@ -2546,6 +2546,20 @@ "path": "src/plugins/presentation_util/public/components/types.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "presentationUtil", + "id": "def-public.SaveModalDashboardProps.mustCopyOnSaveMessage", + "type": "string", + "tags": [], + "label": "mustCopyOnSaveMessage", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "src/plugins/presentation_util/public/components/types.ts", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false diff --git a/api_docs/presentation_util.mdx b/api_docs/presentation_util.mdx index 6e6c5741a6ec7..3e4d575f02507 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'presentationUtil'] --- import presentationUtilObj from './presentation_util.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 | |-------------------|-----------|------------------------|-----------------| -| 219 | 2 | 164 | 11 | +| 220 | 2 | 165 | 11 | ## Client diff --git a/api_docs/profiling.mdx b/api_docs/profiling.mdx index 399dd64183353..90994c7354485 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-01-04 +date: 2024-01-25 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 f6311d7c54487..066f19c63a20d 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-01-04 +date: 2024-01-25 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 78c2e5aa4aa53..7e668dcafdfa6 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-01-04 +date: 2024-01-25 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 40ad623e1af45..be6ffb1d1a119 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-01-04 +date: 2024-01-25 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 250319a684a61..59f89302439af 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-01-04 +date: 2024-01-25 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 a24e8ed5ea6d7..bcb7420c25c3c 100644 --- a/api_docs/rule_registry.devdocs.json +++ b/api_docs/rule_registry.devdocs.json @@ -2315,7 +2315,7 @@ "\nID of the Kibana feature associated with the index.\nUsed by alerts-as-data RBAC.\n\nNote from @dhurley14\nThe purpose of the `feature` param is to force the user to update\nthe data structure which contains the mapping of consumers to alerts\nas data indices. The idea is it is typed such that it forces the\nuser to go to the code and modify it. At least until a better system\nis put in place or we move the alerts as data client out of rule registry.\n" ], "signature": [ - "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\"" + "\"ml\" | \"uptime\" | \"siem\" | \"observability\" | \"stackAlerts\" | \"apm\" | \"logs\" | \"infrastructure\" | \"slo\" | \"AlertingExample\"" ], "path": "x-pack/plugins/rule_registry/server/rule_data_plugin_service/index_options.ts", "deprecated": false, diff --git a/api_docs/rule_registry.mdx b/api_docs/rule_registry.mdx index c951acaa232dd..845b81075f97c 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ruleRegistry'] --- import ruleRegistryObj from './rule_registry.devdocs.json'; diff --git a/api_docs/runtime_fields.mdx b/api_docs/runtime_fields.mdx index 9db85c536b5c1..d28d51b96f13e 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-01-04 +date: 2024-01-25 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 603b1a75edb62..08edd4ccb3b81 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-01-04 +date: 2024-01-25 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 9597a8287cc37..c69155c131bd0 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsFinder'] --- import savedObjectsFinderObj from './saved_objects_finder.devdocs.json'; diff --git a/api_docs/saved_objects_management.devdocs.json b/api_docs/saved_objects_management.devdocs.json index 112ad59aab742..3637af39c4c96 100644 --- a/api_docs/saved_objects_management.devdocs.json +++ b/api_docs/saved_objects_management.devdocs.json @@ -294,11 +294,9 @@ "label": "euiColumn", "description": [], "signature": [ - "{ prefix?: string | undefined; scope?: string | undefined; id?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; name: React.ReactNode; security?: string | undefined; children?: React.ReactNode; description?: string | undefined; onChange?: React.FormEventHandler | undefined; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; className?: string | undefined; contentEditable?: Booleanish | \"inherit\" | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; hidden?: boolean | undefined; lang?: string | undefined; placeholder?: string | undefined; slot?: string | undefined; spellCheck?: Booleanish | undefined; style?: React.CSSProperties | undefined; tabIndex?: number | undefined; title?: string | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; color?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"search\" | \"none\" | \"text\" | \"url\" | \"email\" | \"tel\" | \"numeric\" | \"decimal\" | undefined; is?: string | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"both\" | \"inline\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"page\" | \"date\" | \"location\" | \"true\" | \"false\" | \"time\" | \"step\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"execute\" | \"link\" | \"none\" | \"copy\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"true\" | \"false\" | \"grid\" | \"menu\" | \"dialog\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-label'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"text\" | \"all\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"other\" | \"ascending\" | \"descending\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onError?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; 'data-test-subj'?: string | undefined; css?: ", - "Interpolation", + "{ prefix?: string | undefined; scope?: string | undefined; id?: string | undefined; defaultValue?: string | number | readonly string[] | undefined; name: React.ReactNode; security?: string | undefined; children?: React.ReactNode; abbr?: string | undefined; footer?: string | React.ReactElement> | ((props: ", + "EuiTableFooterProps", "<", - "Theme", - ">; field: (string & {}) | keyof ", { "pluginId": "savedObjectsManagement", "scope": "public", @@ -306,9 +304,11 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - "; width?: string | undefined; headers?: string | undefined; abbr?: string | undefined; footer?: string | React.ReactElement> | ((props: ", - "EuiTableFooterProps", + ">) => React.ReactNode) | undefined; slot?: string | undefined; style?: React.CSSProperties | undefined; title?: string | undefined; description?: string | undefined; onChange?: React.FormEventHandler | undefined; defaultChecked?: boolean | undefined; suppressContentEditableWarning?: boolean | undefined; suppressHydrationWarning?: boolean | undefined; accessKey?: string | undefined; className?: string | undefined; contentEditable?: Booleanish | \"inherit\" | undefined; contextMenu?: string | undefined; dir?: string | undefined; draggable?: Booleanish | undefined; hidden?: boolean | undefined; lang?: string | undefined; placeholder?: string | undefined; spellCheck?: Booleanish | undefined; tabIndex?: number | undefined; translate?: \"yes\" | \"no\" | undefined; radioGroup?: string | undefined; role?: React.AriaRole | undefined; about?: string | undefined; datatype?: string | undefined; inlist?: any; property?: string | undefined; resource?: string | undefined; typeof?: string | undefined; vocab?: string | undefined; autoCapitalize?: string | undefined; autoCorrect?: string | undefined; autoSave?: string | undefined; color?: string | undefined; itemProp?: string | undefined; itemScope?: boolean | undefined; itemType?: string | undefined; itemID?: string | undefined; itemRef?: string | undefined; results?: number | undefined; unselectable?: \"on\" | \"off\" | undefined; inputMode?: \"search\" | \"none\" | \"text\" | \"url\" | \"email\" | \"tel\" | \"numeric\" | \"decimal\" | undefined; is?: string | undefined; 'aria-activedescendant'?: string | undefined; 'aria-atomic'?: Booleanish | undefined; 'aria-autocomplete'?: \"none\" | \"list\" | \"both\" | \"inline\" | undefined; 'aria-busy'?: Booleanish | undefined; 'aria-checked'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-colcount'?: number | undefined; 'aria-colindex'?: number | undefined; 'aria-colspan'?: number | undefined; 'aria-controls'?: string | undefined; 'aria-current'?: boolean | \"page\" | \"date\" | \"time\" | \"location\" | \"true\" | \"false\" | \"step\" | undefined; 'aria-describedby'?: string | undefined; 'aria-details'?: string | undefined; 'aria-disabled'?: Booleanish | undefined; 'aria-dropeffect'?: \"execute\" | \"link\" | \"none\" | \"copy\" | \"move\" | \"popup\" | undefined; 'aria-errormessage'?: string | undefined; 'aria-expanded'?: Booleanish | undefined; 'aria-flowto'?: string | undefined; 'aria-grabbed'?: Booleanish | undefined; 'aria-haspopup'?: boolean | \"dialog\" | \"menu\" | \"true\" | \"false\" | \"grid\" | \"listbox\" | \"tree\" | undefined; 'aria-hidden'?: Booleanish | undefined; 'aria-invalid'?: boolean | \"true\" | \"false\" | \"grammar\" | \"spelling\" | undefined; 'aria-keyshortcuts'?: string | undefined; 'aria-label'?: string | undefined; 'aria-labelledby'?: string | undefined; 'aria-level'?: number | undefined; 'aria-live'?: \"off\" | \"assertive\" | \"polite\" | undefined; 'aria-modal'?: Booleanish | undefined; 'aria-multiline'?: Booleanish | undefined; 'aria-multiselectable'?: Booleanish | undefined; 'aria-orientation'?: \"horizontal\" | \"vertical\" | undefined; 'aria-owns'?: string | undefined; 'aria-placeholder'?: string | undefined; 'aria-posinset'?: number | undefined; 'aria-pressed'?: boolean | \"true\" | \"false\" | \"mixed\" | undefined; 'aria-readonly'?: Booleanish | undefined; 'aria-relevant'?: \"text\" | \"all\" | \"additions\" | \"additions removals\" | \"additions text\" | \"removals\" | \"removals additions\" | \"removals text\" | \"text additions\" | \"text removals\" | undefined; 'aria-required'?: Booleanish | undefined; 'aria-roledescription'?: string | undefined; 'aria-rowcount'?: number | undefined; 'aria-rowindex'?: number | undefined; 'aria-rowspan'?: number | undefined; 'aria-selected'?: Booleanish | undefined; 'aria-setsize'?: number | undefined; 'aria-sort'?: \"none\" | \"other\" | \"ascending\" | \"descending\" | undefined; 'aria-valuemax'?: number | undefined; 'aria-valuemin'?: number | undefined; 'aria-valuenow'?: number | undefined; 'aria-valuetext'?: string | undefined; dangerouslySetInnerHTML?: { __html: string; } | undefined; onCopy?: React.ClipboardEventHandler | undefined; onCopyCapture?: React.ClipboardEventHandler | undefined; onCut?: React.ClipboardEventHandler | undefined; onCutCapture?: React.ClipboardEventHandler | undefined; onPaste?: React.ClipboardEventHandler | undefined; onPasteCapture?: React.ClipboardEventHandler | undefined; onCompositionEnd?: React.CompositionEventHandler | undefined; onCompositionEndCapture?: React.CompositionEventHandler | undefined; onCompositionStart?: React.CompositionEventHandler | undefined; onCompositionStartCapture?: React.CompositionEventHandler | undefined; onCompositionUpdate?: React.CompositionEventHandler | undefined; onCompositionUpdateCapture?: React.CompositionEventHandler | undefined; onFocus?: React.FocusEventHandler | undefined; onFocusCapture?: React.FocusEventHandler | undefined; onBlur?: React.FocusEventHandler | undefined; onBlurCapture?: React.FocusEventHandler | undefined; onChangeCapture?: React.FormEventHandler | undefined; onBeforeInput?: React.FormEventHandler | undefined; onBeforeInputCapture?: React.FormEventHandler | undefined; onInput?: React.FormEventHandler | undefined; onInputCapture?: React.FormEventHandler | undefined; onReset?: React.FormEventHandler | undefined; onResetCapture?: React.FormEventHandler | undefined; onSubmit?: React.FormEventHandler | undefined; onSubmitCapture?: React.FormEventHandler | undefined; onInvalid?: React.FormEventHandler | undefined; onInvalidCapture?: React.FormEventHandler | undefined; onLoad?: React.ReactEventHandler | undefined; onLoadCapture?: React.ReactEventHandler | undefined; onError?: React.ReactEventHandler | undefined; onErrorCapture?: React.ReactEventHandler | undefined; onKeyDown?: React.KeyboardEventHandler | undefined; onKeyDownCapture?: React.KeyboardEventHandler | undefined; onKeyPress?: React.KeyboardEventHandler | undefined; onKeyPressCapture?: React.KeyboardEventHandler | undefined; onKeyUp?: React.KeyboardEventHandler | undefined; onKeyUpCapture?: React.KeyboardEventHandler | undefined; onAbort?: React.ReactEventHandler | undefined; onAbortCapture?: React.ReactEventHandler | undefined; onCanPlay?: React.ReactEventHandler | undefined; onCanPlayCapture?: React.ReactEventHandler | undefined; onCanPlayThrough?: React.ReactEventHandler | undefined; onCanPlayThroughCapture?: React.ReactEventHandler | undefined; onDurationChange?: React.ReactEventHandler | undefined; onDurationChangeCapture?: React.ReactEventHandler | undefined; onEmptied?: React.ReactEventHandler | undefined; onEmptiedCapture?: React.ReactEventHandler | undefined; onEncrypted?: React.ReactEventHandler | undefined; onEncryptedCapture?: React.ReactEventHandler | undefined; onEnded?: React.ReactEventHandler | undefined; onEndedCapture?: React.ReactEventHandler | undefined; onLoadedData?: React.ReactEventHandler | undefined; onLoadedDataCapture?: React.ReactEventHandler | undefined; onLoadedMetadata?: React.ReactEventHandler | undefined; onLoadedMetadataCapture?: React.ReactEventHandler | undefined; onLoadStart?: React.ReactEventHandler | undefined; onLoadStartCapture?: React.ReactEventHandler | undefined; onPause?: React.ReactEventHandler | undefined; onPauseCapture?: React.ReactEventHandler | undefined; onPlay?: React.ReactEventHandler | undefined; onPlayCapture?: React.ReactEventHandler | undefined; onPlaying?: React.ReactEventHandler | undefined; onPlayingCapture?: React.ReactEventHandler | undefined; onProgress?: React.ReactEventHandler | undefined; onProgressCapture?: React.ReactEventHandler | undefined; onRateChange?: React.ReactEventHandler | undefined; onRateChangeCapture?: React.ReactEventHandler | undefined; onSeeked?: React.ReactEventHandler | undefined; onSeekedCapture?: React.ReactEventHandler | undefined; onSeeking?: React.ReactEventHandler | undefined; onSeekingCapture?: React.ReactEventHandler | undefined; onStalled?: React.ReactEventHandler | undefined; onStalledCapture?: React.ReactEventHandler | undefined; onSuspend?: React.ReactEventHandler | undefined; onSuspendCapture?: React.ReactEventHandler | undefined; onTimeUpdate?: React.ReactEventHandler | undefined; onTimeUpdateCapture?: React.ReactEventHandler | undefined; onVolumeChange?: React.ReactEventHandler | undefined; onVolumeChangeCapture?: React.ReactEventHandler | undefined; onWaiting?: React.ReactEventHandler | undefined; onWaitingCapture?: React.ReactEventHandler | undefined; onAuxClick?: React.MouseEventHandler | undefined; onAuxClickCapture?: React.MouseEventHandler | undefined; onClick?: React.MouseEventHandler | undefined; onClickCapture?: React.MouseEventHandler | undefined; onContextMenu?: React.MouseEventHandler | undefined; onContextMenuCapture?: React.MouseEventHandler | undefined; onDoubleClick?: React.MouseEventHandler | undefined; onDoubleClickCapture?: React.MouseEventHandler | undefined; onDrag?: React.DragEventHandler | undefined; onDragCapture?: React.DragEventHandler | undefined; onDragEnd?: React.DragEventHandler | undefined; onDragEndCapture?: React.DragEventHandler | undefined; onDragEnter?: React.DragEventHandler | undefined; onDragEnterCapture?: React.DragEventHandler | undefined; onDragExit?: React.DragEventHandler | undefined; onDragExitCapture?: React.DragEventHandler | undefined; onDragLeave?: React.DragEventHandler | undefined; onDragLeaveCapture?: React.DragEventHandler | undefined; onDragOver?: React.DragEventHandler | undefined; onDragOverCapture?: React.DragEventHandler | undefined; onDragStart?: React.DragEventHandler | undefined; onDragStartCapture?: React.DragEventHandler | undefined; onDrop?: React.DragEventHandler | undefined; onDropCapture?: React.DragEventHandler | undefined; onMouseDown?: React.MouseEventHandler | undefined; onMouseDownCapture?: React.MouseEventHandler | undefined; onMouseEnter?: React.MouseEventHandler | undefined; onMouseLeave?: React.MouseEventHandler | undefined; onMouseMove?: React.MouseEventHandler | undefined; onMouseMoveCapture?: React.MouseEventHandler | undefined; onMouseOut?: React.MouseEventHandler | undefined; onMouseOutCapture?: React.MouseEventHandler | undefined; onMouseOver?: React.MouseEventHandler | undefined; onMouseOverCapture?: React.MouseEventHandler | undefined; onMouseUp?: React.MouseEventHandler | undefined; onMouseUpCapture?: React.MouseEventHandler | undefined; onSelect?: React.ReactEventHandler | undefined; onSelectCapture?: React.ReactEventHandler | undefined; onTouchCancel?: React.TouchEventHandler | undefined; onTouchCancelCapture?: React.TouchEventHandler | undefined; onTouchEnd?: React.TouchEventHandler | undefined; onTouchEndCapture?: React.TouchEventHandler | undefined; onTouchMove?: React.TouchEventHandler | undefined; onTouchMoveCapture?: React.TouchEventHandler | undefined; onTouchStart?: React.TouchEventHandler | undefined; onTouchStartCapture?: React.TouchEventHandler | undefined; onPointerDown?: React.PointerEventHandler | undefined; onPointerDownCapture?: React.PointerEventHandler | undefined; onPointerMove?: React.PointerEventHandler | undefined; onPointerMoveCapture?: React.PointerEventHandler | undefined; onPointerUp?: React.PointerEventHandler | undefined; onPointerUpCapture?: React.PointerEventHandler | undefined; onPointerCancel?: React.PointerEventHandler | undefined; onPointerCancelCapture?: React.PointerEventHandler | undefined; onPointerEnter?: React.PointerEventHandler | undefined; onPointerEnterCapture?: React.PointerEventHandler | undefined; onPointerLeave?: React.PointerEventHandler | undefined; onPointerLeaveCapture?: React.PointerEventHandler | undefined; onPointerOver?: React.PointerEventHandler | undefined; onPointerOverCapture?: React.PointerEventHandler | undefined; onPointerOut?: React.PointerEventHandler | undefined; onPointerOutCapture?: React.PointerEventHandler | undefined; onGotPointerCapture?: React.PointerEventHandler | undefined; onGotPointerCaptureCapture?: React.PointerEventHandler | undefined; onLostPointerCapture?: React.PointerEventHandler | undefined; onLostPointerCaptureCapture?: React.PointerEventHandler | undefined; onScroll?: React.UIEventHandler | undefined; onScrollCapture?: React.UIEventHandler | undefined; onWheel?: React.WheelEventHandler | undefined; onWheelCapture?: React.WheelEventHandler | undefined; onAnimationStart?: React.AnimationEventHandler | undefined; onAnimationStartCapture?: React.AnimationEventHandler | undefined; onAnimationEnd?: React.AnimationEventHandler | undefined; onAnimationEndCapture?: React.AnimationEventHandler | undefined; onAnimationIteration?: React.AnimationEventHandler | undefined; onAnimationIterationCapture?: React.AnimationEventHandler | undefined; onTransitionEnd?: React.TransitionEventHandler | undefined; onTransitionEndCapture?: React.TransitionEventHandler | undefined; 'data-test-subj'?: string | undefined; css?: ", + "Interpolation", "<", + "Theme", + ">; field: (string & {}) | keyof ", { "pluginId": "savedObjectsManagement", "scope": "public", @@ -316,7 +316,7 @@ "section": "def-public.SavedObjectsManagementRecord", "text": "SavedObjectsManagementRecord" }, - ">) => React.ReactNode) | undefined; dataType?: ", + "; width?: string | undefined; headers?: string | undefined; dataType?: ", "EuiTableDataType", " | undefined; render?: ((value: any, record: ", { diff --git a/api_docs/saved_objects_management.mdx b/api_docs/saved_objects_management.mdx index a437d3b666cea..1ffac664f01c4 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-01-04 +date: 2024-01-25 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 e72d964311e90..3f553ad805e82 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-01-04 +date: 2024-01-25 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 903def8f53d00..9f7c529df508b 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'savedObjectsTaggingOss'] --- import savedObjectsTaggingOssObj from './saved_objects_tagging_oss.devdocs.json'; diff --git a/api_docs/saved_search.mdx b/api_docs/saved_search.mdx index 7ce63486b6cf5..a6dbcfca67e0f 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-01-04 +date: 2024-01-25 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 87cc479ecea93..05ba15eb093ff 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-01-04 +date: 2024-01-25 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 fb382915fbd09..d257ec8a44510 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'screenshotting'] --- import screenshottingObj from './screenshotting.devdocs.json'; diff --git a/api_docs/security.mdx b/api_docs/security.mdx index 8fd74810bb99c..ec9f8310e7d5d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'security'] --- import securityObj from './security.devdocs.json'; diff --git a/api_docs/security_solution.devdocs.json b/api_docs/security_solution.devdocs.json index c50901f256cad..3e28b4c302d1c 100644 --- a/api_docs/security_solution.devdocs.json +++ b/api_docs/security_solution.devdocs.json @@ -114,7 +114,7 @@ "label": "experimentalFeatures", "description": [], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" ], "path": "x-pack/plugins/security_solution/public/plugin.tsx", "deprecated": false, @@ -473,7 +473,7 @@ "label": "data", "description": [], "signature": [ - "({ type: \"eql\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"eql\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; license?: string | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; data_view_id?: string | undefined; filters?: unknown[] | undefined; event_category_override?: string | undefined; tiebreaker_field?: string | undefined; timestamp_field?: string | undefined; } | { type: \"query\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; license?: string | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; saved_id?: string | undefined; response_actions?: ({ params: { query?: string | undefined; ecs_mapping?: Zod.objectOutputType<{}, Zod.ZodObject<{ field: Zod.ZodOptional; value: Zod.ZodOptional]>>; }, \"strip\", Zod.ZodTypeAny, { field?: string | undefined; value?: string | string[] | undefined; }, { field?: string | undefined; value?: string | string[] | undefined; }>, \"strip\"> | undefined; queries?: { id: string; query: string; ecs_mapping?: Zod.objectOutputType<{}, Zod.ZodObject<{ field: Zod.ZodOptional; value: Zod.ZodOptional]>>; }, \"strip\", Zod.ZodTypeAny, { field?: string | undefined; value?: string | string[] | undefined; }, { field?: string | undefined; value?: string | string[] | undefined; }>, \"strip\"> | undefined; version?: string | undefined; platform?: string | undefined; removed?: boolean | undefined; snapshot?: boolean | undefined; }[] | undefined; pack_id?: string | undefined; saved_query_id?: string | undefined; timeout?: number | undefined; }; action_type_id: \".osquery\"; } | { params: { command: \"isolate\"; comment?: string | undefined; }; action_type_id: \".endpoint\"; })[] | undefined; alert_suppression?: { group_by: string[]; duration?: { value: number; unit: \"m\" | \"h\" | \"s\"; } | undefined; missing_fields_strategy?: \"doNotSuppress\" | \"suppress\" | undefined; } | undefined; } | { type: \"saved_query\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; saved_id: string; license?: string | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; query?: string | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; response_actions?: ({ params: { query?: string | undefined; ecs_mapping?: Zod.objectOutputType<{}, Zod.ZodObject<{ field: Zod.ZodOptional; value: Zod.ZodOptional]>>; }, \"strip\", Zod.ZodTypeAny, { field?: string | undefined; value?: string | string[] | undefined; }, { field?: string | undefined; value?: string | string[] | undefined; }>, \"strip\"> | undefined; queries?: { id: string; query: string; ecs_mapping?: Zod.objectOutputType<{}, Zod.ZodObject<{ field: Zod.ZodOptional; value: Zod.ZodOptional]>>; }, \"strip\", Zod.ZodTypeAny, { field?: string | undefined; value?: string | string[] | undefined; }, { field?: string | undefined; value?: string | string[] | undefined; }>, \"strip\"> | undefined; version?: string | undefined; platform?: string | undefined; removed?: boolean | undefined; snapshot?: boolean | undefined; }[] | undefined; pack_id?: string | undefined; saved_query_id?: string | undefined; timeout?: number | undefined; }; action_type_id: \".osquery\"; } | { params: { command: \"isolate\"; comment?: string | undefined; }; action_type_id: \".endpoint\"; })[] | undefined; alert_suppression?: { group_by: string[]; duration?: { value: number; unit: \"m\" | \"h\" | \"s\"; } | undefined; missing_fields_strategy?: \"doNotSuppress\" | \"suppress\" | undefined; } | undefined; } | { type: \"threshold\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; threshold: { value: number; field: (string | string[]) & (string | string[] | undefined); cardinality?: { value: number; field: string; }[] | undefined; }; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; license?: string | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; saved_id?: string | undefined; alert_suppression?: { duration: { value: number; unit: \"m\" | \"h\" | \"s\"; }; } | undefined; } | { type: \"threat_match\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; threat_query: string; threat_mapping: { entries: { type: \"mapping\"; value: string; field: string; }[]; }[]; threat_index: string[]; license?: string | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; saved_id?: string | undefined; threat_filters?: unknown[] | undefined; threat_indicator_path?: string | undefined; threat_language?: \"lucene\" | \"kuery\" | undefined; concurrent_searches?: number | undefined; items_per_search?: number | undefined; } | { type: \"machine_learning\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; anomaly_threshold: number; machine_learning_job_id: (string | string[]) & (string | string[] | undefined); license?: string | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; } | { type: \"new_terms\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; new_terms_fields: string[]; history_window_start: string; license?: string | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; } | { type: \"esql\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; summary: boolean; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"esql\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; license?: string | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; })[]" + "({ type: \"eql\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"eql\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; license?: string | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; data_view_id?: string | undefined; filters?: unknown[] | undefined; event_category_override?: string | undefined; tiebreaker_field?: string | undefined; timestamp_field?: string | undefined; } | { type: \"query\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; license?: string | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; saved_id?: string | undefined; response_actions?: ({ params: { query?: string | undefined; ecs_mapping?: Zod.objectOutputType<{}, Zod.ZodObject<{ field: Zod.ZodOptional; value: Zod.ZodOptional]>>; }, \"strip\", Zod.ZodTypeAny, { field?: string | undefined; value?: string | string[] | undefined; }, { field?: string | undefined; value?: string | string[] | undefined; }>, \"strip\"> | undefined; queries?: { id: string; query: string; ecs_mapping?: Zod.objectOutputType<{}, Zod.ZodObject<{ field: Zod.ZodOptional; value: Zod.ZodOptional]>>; }, \"strip\", Zod.ZodTypeAny, { field?: string | undefined; value?: string | string[] | undefined; }, { field?: string | undefined; value?: string | string[] | undefined; }>, \"strip\"> | undefined; version?: string | undefined; platform?: string | undefined; removed?: boolean | undefined; snapshot?: boolean | undefined; }[] | undefined; pack_id?: string | undefined; saved_query_id?: string | undefined; timeout?: number | undefined; }; action_type_id: \".osquery\"; } | { params: { command: \"isolate\"; comment?: string | undefined; }; action_type_id: \".endpoint\"; })[] | undefined; alert_suppression?: { group_by: string[]; duration?: { value: number; unit: \"m\" | \"s\" | \"h\"; } | undefined; missing_fields_strategy?: \"doNotSuppress\" | \"suppress\" | undefined; } | undefined; } | { type: \"saved_query\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; saved_id: string; license?: string | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; query?: string | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; response_actions?: ({ params: { query?: string | undefined; ecs_mapping?: Zod.objectOutputType<{}, Zod.ZodObject<{ field: Zod.ZodOptional; value: Zod.ZodOptional]>>; }, \"strip\", Zod.ZodTypeAny, { field?: string | undefined; value?: string | string[] | undefined; }, { field?: string | undefined; value?: string | string[] | undefined; }>, \"strip\"> | undefined; queries?: { id: string; query: string; ecs_mapping?: Zod.objectOutputType<{}, Zod.ZodObject<{ field: Zod.ZodOptional; value: Zod.ZodOptional]>>; }, \"strip\", Zod.ZodTypeAny, { field?: string | undefined; value?: string | string[] | undefined; }, { field?: string | undefined; value?: string | string[] | undefined; }>, \"strip\"> | undefined; version?: string | undefined; platform?: string | undefined; removed?: boolean | undefined; snapshot?: boolean | undefined; }[] | undefined; pack_id?: string | undefined; saved_query_id?: string | undefined; timeout?: number | undefined; }; action_type_id: \".osquery\"; } | { params: { command: \"isolate\"; comment?: string | undefined; }; action_type_id: \".endpoint\"; })[] | undefined; alert_suppression?: { group_by: string[]; duration?: { value: number; unit: \"m\" | \"s\" | \"h\"; } | undefined; missing_fields_strategy?: \"doNotSuppress\" | \"suppress\" | undefined; } | undefined; } | { type: \"threshold\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; threshold: { value: number; field: (string | string[]) & (string | string[] | undefined); cardinality?: { value: number; field: string; }[] | undefined; }; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; license?: string | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; saved_id?: string | undefined; alert_suppression?: { duration: { value: number; unit: \"m\" | \"s\" | \"h\"; }; } | undefined; } | { type: \"threat_match\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; threat_query: string; threat_mapping: { entries: { type: \"mapping\"; value: string; field: string; }[]; }[]; threat_index: string[]; license?: string | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; saved_id?: string | undefined; threat_filters?: unknown[] | undefined; threat_indicator_path?: string | undefined; threat_language?: \"lucene\" | \"kuery\" | undefined; concurrent_searches?: number | undefined; items_per_search?: number | undefined; } | { type: \"machine_learning\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; anomaly_threshold: number; machine_learning_job_id: (string | string[]) & (string | string[] | undefined); license?: string | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; } | { type: \"new_terms\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"kuery\" | \"lucene\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; new_terms_fields: string[]; history_window_start: string; license?: string | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; index?: string[] | undefined; filters?: unknown[] | undefined; data_view_id?: string | undefined; } | { type: \"esql\"; id: string; name: string; actions: { id: string; params: {} & { [k: string]: unknown; }; group: string; action_type_id: string; uuid?: string | undefined; alerts_filter?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; frequency?: { summary: boolean; throttle: string | null; notifyWhen: \"onActionGroupChange\" | \"onActiveAlert\" | \"onThrottleInterval\"; } | undefined; }[]; tags: string[]; setup: string; description: string; enabled: boolean; revision: number; version: number; references: string[]; interval: string; query: string; risk_score: number; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; from: string; to: string; language: \"esql\"; created_at: string; created_by: string; updated_at: string; updated_by: string; author: string[]; immutable: boolean; rule_id: string; threat: { framework: string; tactic: { id: string; name: string; reference: string; }; technique?: { id: string; name: string; reference: string; subtechnique?: { id: string; name: string; reference: string; }[] | undefined; }[] | undefined; }[]; risk_score_mapping: { value: string; field: string; operator: \"equals\"; risk_score?: number | undefined; }[]; severity_mapping: { value: string; field: string; severity: \"medium\" | \"high\" | \"low\" | \"critical\"; operator: \"equals\"; }[]; exceptions_list: { type: \"endpoint\" | \"detection\" | \"rule_default\" | \"endpoint_trusted_apps\" | \"endpoint_events\" | \"endpoint_host_isolation_exceptions\" | \"endpoint_blocklists\"; id: string; list_id: string; namespace_type: \"single\" | \"agnostic\"; }[]; false_positives: string[]; max_signals: number; related_integrations: { version: string; package: string; integration?: string | undefined; }[]; required_fields: { type: string; name: string; ecs: boolean; }[]; license?: string | undefined; meta?: Zod.objectOutputType<{}, Zod.ZodUnknown, \"strip\"> | undefined; throttle?: string | undefined; outcome?: \"exactMatch\" | \"aliasMatch\" | \"conflict\" | undefined; alias_target_id?: string | undefined; alias_purpose?: \"savedObjectConversion\" | \"savedObjectImport\" | undefined; namespace?: string | undefined; note?: string | undefined; rule_name_override?: string | undefined; timestamp_override?: string | undefined; timestamp_override_fallback_disabled?: boolean | undefined; timeline_id?: string | undefined; timeline_title?: string | undefined; building_block_type?: string | undefined; output_index?: string | undefined; investigation_fields?: { field_names: string[]; } | undefined; execution_summary?: { last_execution: { message: string; date: string; status: \"running\" | \"succeeded\" | \"failed\" | \"going to run\" | \"partial failure\"; metrics: { total_search_duration_ms?: number | undefined; total_indexing_duration_ms?: number | undefined; total_enrichment_duration_ms?: number | undefined; execution_gap_duration_s?: number | undefined; }; status_order: number; }; } | undefined; })[]" ], "path": "x-pack/plugins/security_solution/public/detection_engine/rule_management/logic/types.ts", "deprecated": false, @@ -568,7 +568,7 @@ "\nExperimental flag needed to enable the link" ], "signature": [ - "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"assistantStreamingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"expandableFlyoutInCreateRuleEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"entityAnalyticsAssetCriticalityEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"jsonPrebuiltRulesDiffingEnabled\" | \"timelineEsqlTabDisabled\" | undefined" + "\"assistantModelEvaluation\" | \"assistantStreamingEnabled\" | \"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"expandableFlyoutInCreateRuleEnabled\" | \"alertsPageFiltersEnabled\" | \"newUserDetailsFlyout\" | \"newUserDetailsFlyoutManagedUser\" | \"newHostDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"entityAnalyticsAssetCriticalityEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"jsonPrebuiltRulesDiffingEnabled\" | \"timelineEsqlTabDisabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -648,7 +648,7 @@ "\nExperimental flag needed to disable the link. Opposite of experimentalKey" ], "signature": [ - "\"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"alertsPreviewChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"assistantStreamingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"expandableFlyoutInCreateRuleEnabled\" | \"alertsPageFiltersEnabled\" | \"assistantModelEvaluation\" | \"newUserDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"entityAnalyticsAssetCriticalityEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"jsonPrebuiltRulesDiffingEnabled\" | \"timelineEsqlTabDisabled\" | undefined" + "\"assistantModelEvaluation\" | \"assistantStreamingEnabled\" | \"tGridEnabled\" | \"tGridEventRenderedViewEnabled\" | \"excludePoliciesInFilterEnabled\" | \"kubernetesEnabled\" | \"chartEmbeddablesEnabled\" | \"donutChartEmbeddablesEnabled\" | \"previewTelemetryUrlEnabled\" | \"insightsRelatedAlertsByProcessAncestry\" | \"extendedRuleExecutionLoggingEnabled\" | \"socTrendsEnabled\" | \"responseActionsEnabled\" | \"endpointResponseActionsEnabled\" | \"responseActionUploadEnabled\" | \"responseActionsSentinelOneV1Enabled\" | \"alertsPageChartsEnabled\" | \"alertTypeEnabled\" | \"expandableFlyoutInCreateRuleEnabled\" | \"alertsPageFiltersEnabled\" | \"newUserDetailsFlyout\" | \"newUserDetailsFlyoutManagedUser\" | \"newHostDetailsFlyout\" | \"riskScoringPersistence\" | \"riskScoringRoutesEnabled\" | \"esqlRulesDisabled\" | \"protectionUpdatesEnabled\" | \"disableTimelineSaveTour\" | \"riskEnginePrivilegesRouteEnabled\" | \"entityAnalyticsAssetCriticalityEnabled\" | \"sentinelOneDataInAnalyzerEnabled\" | \"sentinelOneManualHostActionsEnabled\" | \"jsonPrebuiltRulesDiffingEnabled\" | \"timelineEsqlTabDisabled\" | undefined" ], "path": "x-pack/plugins/security_solution/public/common/links/types.ts", "deprecated": false, @@ -1874,7 +1874,80 @@ } ], "enums": [], - "misc": [], + "misc": [ + { + "parentPluginId": "securitySolution", + "id": "def-public.AddIntegrationsSteps", + "type": "string", + "tags": [], + "label": "AddIntegrationsSteps", + "description": [], + "path": "x-pack/plugins/security_solution/public/common/components/landing_page/onboarding/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "securitySolution", + "id": "def-public.CreateProjectSteps", + "type": "string", + "tags": [], + "label": "CreateProjectSteps", + "description": [], + "path": "x-pack/plugins/security_solution/public/common/components/landing_page/onboarding/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "securitySolution", + "id": "def-public.EnablePrebuiltRulesSteps", + "type": "string", + "tags": [], + "label": "EnablePrebuiltRulesSteps", + "description": [], + "path": "x-pack/plugins/security_solution/public/common/components/landing_page/onboarding/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "securitySolution", + "id": "def-public.OverviewSteps", + "type": "string", + "tags": [], + "label": "OverviewSteps", + "description": [], + "path": "x-pack/plugins/security_solution/public/common/components/landing_page/onboarding/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "securitySolution", + "id": "def-public.ViewAlertsSteps", + "type": "string", + "tags": [], + "label": "ViewAlertsSteps", + "description": [], + "path": "x-pack/plugins/security_solution/public/common/components/landing_page/onboarding/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, + { + "parentPluginId": "securitySolution", + "id": "def-public.ViewDashboardSteps", + "type": "string", + "tags": [], + "label": "ViewDashboardSteps", + "description": [], + "path": "x-pack/plugins/security_solution/public/common/components/landing_page/onboarding/types.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + } + ], "objects": [], "setup": { "parentPluginId": "securitySolution", @@ -1913,7 +1986,7 @@ "label": "experimentalFeatures", "description": [], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" ], "path": "x-pack/plugins/security_solution/public/types.ts", "deprecated": false, @@ -2124,6 +2197,20 @@ "trackAdoption": false, "children": [], "returnComment": [] + }, + { + "parentPluginId": "securitySolution", + "id": "def-public.PluginStart.setOnboardingPageSettings", + "type": "Object", + "tags": [], + "label": "setOnboardingPageSettings", + "description": [], + "signature": [ + "OnboardingPageService" + ], + "path": "x-pack/plugins/security_solution/public/types.ts", + "deprecated": false, + "trackAdoption": false } ], "lifecycle": "start", @@ -3018,7 +3105,7 @@ "\nThe security solution generic experimental features" ], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" ], "path": "x-pack/plugins/security_solution/server/plugin_contract.ts", "deprecated": false, @@ -3194,7 +3281,7 @@ "label": "ExperimentalFeatures", "description": [], "signature": [ - "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" + "{ readonly tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly newUserDetailsFlyoutManagedUser: boolean; readonly newHostDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" ], "path": "x-pack/plugins/security_solution/common/experimental_features.ts", "deprecated": false, @@ -3243,7 +3330,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 tGridEnabled: boolean; readonly tGridEventRenderedViewEnabled: boolean; readonly excludePoliciesInFilterEnabled: boolean; readonly kubernetesEnabled: boolean; readonly chartEmbeddablesEnabled: boolean; readonly donutChartEmbeddablesEnabled: boolean; readonly alertsPreviewChartEmbeddablesEnabled: boolean; readonly previewTelemetryUrlEnabled: boolean; readonly insightsRelatedAlertsByProcessAncestry: boolean; readonly extendedRuleExecutionLoggingEnabled: boolean; readonly assistantStreamingEnabled: boolean; readonly socTrendsEnabled: boolean; readonly responseActionsEnabled: boolean; readonly endpointResponseActionsEnabled: boolean; readonly responseActionUploadEnabled: boolean; readonly responseActionsSentinelOneV1Enabled: boolean; readonly alertsPageChartsEnabled: boolean; readonly alertTypeEnabled: boolean; readonly expandableFlyoutInCreateRuleEnabled: boolean; readonly alertsPageFiltersEnabled: boolean; readonly assistantModelEvaluation: boolean; readonly newUserDetailsFlyout: boolean; readonly riskScoringPersistence: boolean; readonly riskScoringRoutesEnabled: boolean; readonly esqlRulesDisabled: boolean; readonly protectionUpdatesEnabled: boolean; readonly disableTimelineSaveTour: boolean; readonly riskEnginePrivilegesRouteEnabled: boolean; readonly entityAnalyticsAssetCriticalityEnabled: boolean; readonly sentinelOneDataInAnalyzerEnabled: boolean; readonly sentinelOneManualHostActionsEnabled: boolean; readonly jsonPrebuiltRulesDiffingEnabled: boolean; readonly timelineEsqlTabDisabled: boolean; }" + "{ readonly tGridEnabled: true; readonly tGridEventRenderedViewEnabled: true; readonly excludePoliciesInFilterEnabled: false; readonly kubernetesEnabled: true; readonly chartEmbeddablesEnabled: true; readonly donutChartEmbeddablesEnabled: false; readonly previewTelemetryUrlEnabled: false; readonly insightsRelatedAlertsByProcessAncestry: true; readonly extendedRuleExecutionLoggingEnabled: false; readonly assistantStreamingEnabled: false; readonly socTrendsEnabled: false; readonly responseActionsEnabled: true; readonly endpointResponseActionsEnabled: true; readonly responseActionUploadEnabled: true; readonly responseActionsSentinelOneV1Enabled: false; readonly alertsPageChartsEnabled: true; readonly alertTypeEnabled: false; readonly expandableFlyoutInCreateRuleEnabled: true; readonly alertsPageFiltersEnabled: true; readonly assistantModelEvaluation: false; readonly newUserDetailsFlyout: false; readonly newUserDetailsFlyoutManagedUser: false; readonly newHostDetailsFlyout: false; readonly riskScoringPersistence: true; readonly riskScoringRoutesEnabled: true; readonly esqlRulesDisabled: false; readonly protectionUpdatesEnabled: true; readonly disableTimelineSaveTour: false; readonly riskEnginePrivilegesRouteEnabled: true; readonly entityAnalyticsAssetCriticalityEnabled: false; readonly sentinelOneDataInAnalyzerEnabled: false; readonly sentinelOneManualHostActionsEnabled: true; readonly jsonPrebuiltRulesDiffingEnabled: true; readonly timelineEsqlTabDisabled: 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 8eef95d5129ce..837507e0cdf0d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolution'] --- import securitySolutionObj from './security_solution.devdocs.json'; @@ -21,7 +21,7 @@ Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/secur | Public API count | Any count | Items lacking comments | Missing exports | |-------------------|-----------|------------------------|-----------------| -| 186 | 0 | 117 | 36 | +| 193 | 0 | 124 | 37 | ## Client @@ -37,6 +37,9 @@ Contact [@elastic/security-solution](https://github.com/orgs/elastic/teams/secur ### Interfaces +### Consts, variables and types + + ## Server ### Setup diff --git a/api_docs/security_solution_ess.mdx b/api_docs/security_solution_ess.mdx index ffa55031142c3..12cab286636c4 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-01-04 +date: 2024-01-25 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 1424cf9913554..98f0409d7f38d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'securitySolutionServerless'] --- import securitySolutionServerlessObj from './security_solution_serverless.devdocs.json'; diff --git a/api_docs/serverless.devdocs.json b/api_docs/serverless.devdocs.json index 53843f88f7fdf..da295e570a95b 100644 --- a/api_docs/serverless.devdocs.json +++ b/api_docs/serverless.devdocs.json @@ -128,21 +128,13 @@ }, { "parentPluginId": "serverless", - "id": "def-public.ServerlessPluginStart.setNavigation", + "id": "def-public.ServerlessPluginStart.setProjectHome", "type": "Function", "tags": [], - "label": "setNavigation", + "label": "setProjectHome", "description": [], "signature": [ - "(projectNavigation: ", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeProjectNavigation", - "text": "ChromeProjectNavigation" - }, - ") => void" + "(homeHref: string) => void" ], "path": "x-pack/plugins/serverless/public/types.ts", "deprecated": false, @@ -150,19 +142,13 @@ "children": [ { "parentPluginId": "serverless", - "id": "def-public.ServerlessPluginStart.setNavigation.$1", - "type": "Object", + "id": "def-public.ServerlessPluginStart.setProjectHome.$1", + "type": "string", "tags": [], - "label": "projectNavigation", + "label": "homeHref", "description": [], "signature": [ - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeProjectNavigation", - "text": "ChromeProjectNavigation" - } + "string" ], "path": "x-pack/plugins/serverless/public/types.ts", "deprecated": false, @@ -174,13 +160,39 @@ }, { "parentPluginId": "serverless", - "id": "def-public.ServerlessPluginStart.setProjectHome", + "id": "def-public.ServerlessPluginStart.initNavigation", "type": "Function", "tags": [], - "label": "setProjectHome", + "label": "initNavigation", "description": [], "signature": [ - "(homeHref: string) => void" + "(navigationTree$: ", + "Observable", + "<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.NavigationTreeDefinition", + "text": "NavigationTreeDefinition" + }, + "<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.AppDeepLinkId", + "text": "AppDeepLinkId" + }, + ", string, string>>, config?: { dataTestSubj?: string | undefined; panelContentProvider?: ", + { + "pluginId": "@kbn/shared-ux-chrome-navigation", + "scope": "public", + "docId": "kibKbnSharedUxChromeNavigationPluginApi", + "section": "def-public.ContentProvider", + "text": "ContentProvider" + }, + " | undefined; } | undefined) => void" ], "path": "x-pack/plugins/serverless/public/types.ts", "deprecated": false, @@ -188,28 +200,95 @@ "children": [ { "parentPluginId": "serverless", - "id": "def-public.ServerlessPluginStart.setProjectHome.$1", - "type": "string", + "id": "def-public.ServerlessPluginStart.initNavigation.$1", + "type": "Object", "tags": [], - "label": "homeHref", + "label": "navigationTree$", "description": [], "signature": [ - "string" + "Observable", + "<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.NavigationTreeDefinition", + "text": "NavigationTreeDefinition" + }, + "<", + { + "pluginId": "@kbn/core-chrome-browser", + "scope": "common", + "docId": "kibKbnCoreChromeBrowserPluginApi", + "section": "def-common.AppDeepLinkId", + "text": "AppDeepLinkId" + }, + ", string, string>>" ], "path": "x-pack/plugins/serverless/public/types.ts", "deprecated": false, "trackAdoption": false, "isRequired": true + }, + { + "parentPluginId": "serverless", + "id": "def-public.ServerlessPluginStart.initNavigation.$2", + "type": "Object", + "tags": [], + "label": "config", + "description": [], + "path": "x-pack/plugins/serverless/public/types.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "serverless", + "id": "def-public.ServerlessPluginStart.initNavigation.$2.dataTestSubj", + "type": "string", + "tags": [], + "label": "dataTestSubj", + "description": [], + "signature": [ + "string | undefined" + ], + "path": "x-pack/plugins/serverless/public/types.ts", + "deprecated": false, + "trackAdoption": false + }, + { + "parentPluginId": "serverless", + "id": "def-public.ServerlessPluginStart.initNavigation.$2.panelContentProvider", + "type": "Function", + "tags": [], + "label": "panelContentProvider", + "description": [], + "signature": [ + { + "pluginId": "@kbn/shared-ux-chrome-navigation", + "scope": "public", + "docId": "kibKbnSharedUxChromeNavigationPluginApi", + "section": "def-public.ContentProvider", + "text": "ContentProvider" + }, + " | undefined" + ], + "path": "x-pack/plugins/serverless/public/types.ts", + "deprecated": false, + "trackAdoption": false + } + ] } ], "returnComment": [] }, { "parentPluginId": "serverless", - "id": "def-public.ServerlessPluginStart.setSideNavComponent", + "id": "def-public.ServerlessPluginStart.setSideNavComponentDeprecated", "type": "Function", - "tags": [], - "label": "setSideNavComponent", + "tags": [ + "deprecated" + ], + "label": "setSideNavComponentDeprecated", "description": [], "signature": [ "(navigation: ", @@ -223,12 +302,13 @@ ") => void" ], "path": "x-pack/plugins/serverless/public/types.ts", - "deprecated": false, + "deprecated": true, "trackAdoption": false, + "references": [], "children": [ { "parentPluginId": "serverless", - "id": "def-public.ServerlessPluginStart.setSideNavComponent.$1", + "id": "def-public.ServerlessPluginStart.setSideNavComponentDeprecated.$1", "type": "CompoundType", "tags": [], "label": "navigation", @@ -249,32 +329,6 @@ } ], "returnComment": [] - }, - { - "parentPluginId": "serverless", - "id": "def-public.ServerlessPluginStart.getActiveNavigationNodes$", - "type": "Function", - "tags": [], - "label": "getActiveNavigationNodes$", - "description": [], - "signature": [ - "() => ", - "Observable", - "<", - { - "pluginId": "@kbn/core-chrome-browser", - "scope": "common", - "docId": "kibKbnCoreChromeBrowserPluginApi", - "section": "def-common.ChromeProjectNavigationNode", - "text": "ChromeProjectNavigationNode" - }, - "[][]>" - ], - "path": "x-pack/plugins/serverless/public/types.ts", - "deprecated": false, - "trackAdoption": false, - "children": [], - "returnComment": [] } ], "lifecycle": "start", diff --git a/api_docs/serverless.mdx b/api_docs/serverless.mdx index 2e7a6aadd704b..73e66dc30aee1 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'serverless'] --- import serverlessObj from './serverless.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 | |-------------------|-----------|------------------------|-----------------| -| 19 | 0 | 18 | 0 | +| 21 | 0 | 20 | 0 | ## Client diff --git a/api_docs/serverless_observability.mdx b/api_docs/serverless_observability.mdx index 1bf96e28966e0..f285c2b09109b 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-01-04 +date: 2024-01-25 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 fc4b453d0c79d..af097856f688a 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-01-04 +date: 2024-01-25 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 2f8c9f437ccb8..3a3f77a362c88 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-01-04 +date: 2024-01-25 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 a0d28e5a26b04..5c653325b0017 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'share'] --- import shareObj from './share.devdocs.json'; diff --git a/api_docs/snapshot_restore.mdx b/api_docs/snapshot_restore.mdx index dba4bc4e7e8b5..0b408a9380625 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-01-04 +date: 2024-01-25 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 f638dca83f957..0e769647833a7 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-01-04 +date: 2024-01-25 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 88a3c55dc67b7..d798541cfe219 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-01-04 +date: 2024-01-25 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 86f2c02b51559..1ed92fcb49496 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'stackConnectors'] --- import stackConnectorsObj from './stack_connectors.devdocs.json'; diff --git a/api_docs/task_manager.mdx b/api_docs/task_manager.mdx index 56924fd413208..84b95e579f2e8 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'taskManager'] --- import taskManagerObj from './task_manager.devdocs.json'; diff --git a/api_docs/telemetry.mdx b/api_docs/telemetry.mdx index 4fad05863370d..3d7f6e3e8fb17 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetry'] --- import telemetryObj from './telemetry.devdocs.json'; diff --git a/api_docs/telemetry_collection_manager.mdx b/api_docs/telemetry_collection_manager.mdx index a690d153a5453..ded8337c8af94 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-01-04 +date: 2024-01-25 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 1a6dadc567f66..db37f8bd51260 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-01-04 +date: 2024-01-25 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 d280cb1dbe2d7..8c18ed7f316fa 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'telemetryManagementSection'] --- import telemetryManagementSectionObj from './telemetry_management_section.devdocs.json'; diff --git a/api_docs/text_based_languages.mdx b/api_docs/text_based_languages.mdx index cc12aff43841a..5d4934091441d 100644 --- a/api_docs/text_based_languages.mdx +++ b/api_docs/text_based_languages.mdx @@ -8,7 +8,7 @@ slug: /kibana-dev-docs/api/textBasedLanguages title: "textBasedLanguages" image: https://source.unsplash.com/400x175/?github description: API docs for the textBasedLanguages plugin -date: 2024-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'textBasedLanguages'] --- import textBasedLanguagesObj from './text_based_languages.devdocs.json'; diff --git a/api_docs/threat_intelligence.mdx b/api_docs/threat_intelligence.mdx index b2400c6a56059..bcd36b82d30e2 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'threatIntelligence'] --- import threatIntelligenceObj from './threat_intelligence.devdocs.json'; diff --git a/api_docs/timelines.devdocs.json b/api_docs/timelines.devdocs.json index 2e0f4f47ba19a..885a7e1633a51 100644 --- a/api_docs/timelines.devdocs.json +++ b/api_docs/timelines.devdocs.json @@ -927,7 +927,7 @@ "EuiButtonIconPropsForAnchor", ", ", "EuiButtonIconPropsForButton", - "> & { type?: \"reset\" | \"button\" | \"submit\" | undefined; } & ", + "> & { type?: \"button\" | \"reset\" | \"submit\" | undefined; } & ", "EuiButtonIconProps", " & { onClick?: React.MouseEventHandler | undefined; } & React.ButtonHTMLAttributes & { buttonRef?: React.Ref | undefined; }) | (", "DisambiguateSet", @@ -1517,39 +1517,39 @@ }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/utils.ts" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/utils.ts" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/utils.ts" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/utils.ts" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/utils.ts" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/utils.ts" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/threatmatch_input/index.tsx" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/threatmatch_input/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/threatmatch_input/index.tsx" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/index.tsx" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/index.tsx" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/index.tsx" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/index.tsx" }, { "plugin": "securitySolution", @@ -4115,11 +4115,11 @@ }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/query_bar/index.tsx" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/query_bar/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/query_bar/index.tsx" }, { "plugin": "securitySolution", @@ -4351,11 +4351,11 @@ }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/index.tsx" }, { "plugin": "securitySolution", - "path": "x-pack/plugins/security_solution/public/detections/components/rules/step_define_rule/index.tsx" + "path": "x-pack/plugins/security_solution/public/detection_engine/rule_creation_ui/components/step_define_rule/index.tsx" }, { "plugin": "securitySolution", diff --git a/api_docs/timelines.mdx b/api_docs/timelines.mdx index 089062e668317..79bfdd6cc9f5f 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-01-04 +date: 2024-01-25 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 e1380a11e5fb2..4800bc1c03bc0 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-01-04 +date: 2024-01-25 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 9aea768e7525e..43889de19ef3d 100644 --- a/api_docs/triggers_actions_ui.devdocs.json +++ b/api_docs/triggers_actions_ui.devdocs.json @@ -3058,7 +3058,7 @@ "description": [], "signature": [ "BasicFields", - " & { \"@timestamp\"?: string[] | undefined; \"event.action\"?: string[] | undefined; tags?: string[] | undefined; kibana?: string[] | undefined; \"kibana.alert.rule.rule_type_id\"?: string[] | undefined; \"kibana.alert.rule.consumer\"?: string[] | undefined; \"kibana.alert.rule.execution.uuid\"?: string[] | undefined; \"kibana.alert.instance.id\"?: string[] | undefined; \"kibana.alert.rule.category\"?: string[] | undefined; \"kibana.alert.rule.name\"?: string[] | undefined; \"kibana.alert.rule.producer\"?: string[] | undefined; \"kibana.alert.rule.uuid\"?: string[] | undefined; \"kibana.alert.status\"?: string[] | undefined; \"kibana.alert.uuid\"?: string[] | undefined; \"kibana.space_ids\"?: string[] | undefined; \"event.kind\"?: string[] | undefined; \"kibana.alert.action_group\"?: string[] | undefined; \"kibana.alert.case_ids\"?: string[] | undefined; \"kibana.alert.duration.us\"?: string[] | undefined; \"kibana.alert.end\"?: string[] | undefined; \"kibana.alert.flapping\"?: string[] | undefined; \"kibana.alert.maintenance_window_ids\"?: string[] | undefined; \"kibana.alert.reason\"?: string[] | undefined; \"kibana.alert.rule.parameters\"?: string[] | undefined; \"kibana.alert.rule.tags\"?: string[] | undefined; \"kibana.alert.start\"?: string[] | undefined; \"kibana.alert.time_range\"?: string[] | undefined; \"kibana.alert.workflow_assignee_ids\"?: string[] | undefined; \"kibana.alert.workflow_status\"?: string[] | undefined; \"kibana.alert.workflow_tags\"?: string[] | undefined; \"kibana.version\"?: string[] | undefined; \"kibana.alert.context\"?: string[] | undefined; \"kibana.alert.evaluation.threshold\"?: string[] | undefined; \"kibana.alert.evaluation.value\"?: string[] | undefined; \"kibana.alert.evaluation.values\"?: string[] | undefined; \"kibana.alert.group\"?: string[] | undefined; \"ecs.version\"?: string[] | undefined; \"kibana.alert.risk_score\"?: string[] | undefined; \"kibana.alert.rule.author\"?: string[] | undefined; \"kibana.alert.rule.created_at\"?: string[] | undefined; \"kibana.alert.rule.created_by\"?: string[] | undefined; \"kibana.alert.rule.description\"?: string[] | undefined; \"kibana.alert.rule.enabled\"?: string[] | undefined; \"kibana.alert.rule.from\"?: string[] | undefined; \"kibana.alert.rule.interval\"?: string[] | undefined; \"kibana.alert.rule.license\"?: string[] | undefined; \"kibana.alert.rule.note\"?: string[] | undefined; \"kibana.alert.rule.references\"?: string[] | undefined; \"kibana.alert.rule.rule_id\"?: string[] | undefined; \"kibana.alert.rule.rule_name_override\"?: string[] | undefined; \"kibana.alert.rule.to\"?: string[] | undefined; \"kibana.alert.rule.type\"?: string[] | undefined; \"kibana.alert.rule.updated_at\"?: string[] | undefined; \"kibana.alert.rule.updated_by\"?: string[] | undefined; \"kibana.alert.rule.version\"?: string[] | undefined; \"kibana.alert.severity\"?: string[] | undefined; \"kibana.alert.suppression.docs_count\"?: string[] | undefined; \"kibana.alert.suppression.end\"?: string[] | undefined; \"kibana.alert.suppression.start\"?: string[] | undefined; \"kibana.alert.suppression.terms.field\"?: string[] | undefined; \"kibana.alert.suppression.terms.value\"?: string[] | undefined; \"kibana.alert.system_status\"?: string[] | undefined; \"kibana.alert.workflow_reason\"?: string[] | undefined; \"kibana.alert.workflow_user\"?: string[] | undefined; \"event.module\"?: string[] | undefined; \"kibana.alert.rule.threat.framework\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.id\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.name\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.reference\"?: string[] | undefined; \"kibana.alert.building_block_type\"?: string[] | undefined; \"kibana.alert\"?: string[] | undefined; \"kibana.alert.rule\"?: string[] | undefined; \"kibana.alert.suppression.terms\"?: string[] | undefined; \"kibana.alert.group.field\"?: string[] | undefined; \"kibana.alert.group.value\"?: string[] | undefined; \"kibana.alert.rule.exceptions_list\"?: string[] | undefined; \"kibana.alert.rule.namespace\"?: string[] | undefined; } & { [x: string]: unknown[]; }" + " & { \"@timestamp\"?: string[] | undefined; \"event.action\"?: string[] | undefined; tags?: string[] | undefined; kibana?: string[] | undefined; \"kibana.alert.rule.rule_type_id\"?: string[] | undefined; \"kibana.alert.rule.consumer\"?: string[] | undefined; \"kibana.alert.rule.execution.uuid\"?: string[] | undefined; \"kibana.alert.instance.id\"?: string[] | undefined; \"kibana.alert.rule.category\"?: string[] | undefined; \"kibana.alert.rule.name\"?: string[] | undefined; \"kibana.alert.rule.producer\"?: string[] | undefined; \"kibana.alert.rule.uuid\"?: string[] | undefined; \"kibana.alert.status\"?: string[] | undefined; \"kibana.alert.uuid\"?: string[] | undefined; \"kibana.space_ids\"?: string[] | undefined; \"event.kind\"?: string[] | undefined; \"kibana.alert.action_group\"?: string[] | undefined; \"kibana.alert.case_ids\"?: string[] | undefined; \"kibana.alert.duration.us\"?: string[] | undefined; \"kibana.alert.end\"?: string[] | undefined; \"kibana.alert.flapping\"?: string[] | undefined; \"kibana.alert.maintenance_window_ids\"?: string[] | undefined; \"kibana.alert.reason\"?: string[] | undefined; \"kibana.alert.rule.parameters\"?: string[] | undefined; \"kibana.alert.rule.tags\"?: string[] | undefined; \"kibana.alert.start\"?: string[] | undefined; \"kibana.alert.time_range\"?: string[] | undefined; \"kibana.alert.workflow_assignee_ids\"?: string[] | undefined; \"kibana.alert.workflow_status\"?: string[] | undefined; \"kibana.alert.workflow_tags\"?: string[] | undefined; \"kibana.version\"?: string[] | undefined; \"kibana.alert.context\"?: string[] | undefined; \"kibana.alert.evaluation.threshold\"?: string[] | undefined; \"kibana.alert.evaluation.value\"?: string[] | undefined; \"kibana.alert.evaluation.values\"?: string[] | undefined; \"kibana.alert.group\"?: string[] | undefined; \"ecs.version\"?: string[] | undefined; \"kibana.alert.risk_score\"?: string[] | undefined; \"kibana.alert.rule.author\"?: string[] | undefined; \"kibana.alert.rule.created_at\"?: string[] | undefined; \"kibana.alert.rule.created_by\"?: string[] | undefined; \"kibana.alert.rule.description\"?: string[] | undefined; \"kibana.alert.rule.enabled\"?: string[] | undefined; \"kibana.alert.rule.from\"?: string[] | undefined; \"kibana.alert.rule.interval\"?: string[] | undefined; \"kibana.alert.rule.license\"?: string[] | undefined; \"kibana.alert.rule.note\"?: string[] | undefined; \"kibana.alert.rule.references\"?: string[] | undefined; \"kibana.alert.rule.rule_id\"?: string[] | undefined; \"kibana.alert.rule.rule_name_override\"?: string[] | undefined; \"kibana.alert.rule.to\"?: string[] | undefined; \"kibana.alert.rule.type\"?: string[] | undefined; \"kibana.alert.rule.updated_at\"?: string[] | undefined; \"kibana.alert.rule.updated_by\"?: string[] | undefined; \"kibana.alert.rule.version\"?: string[] | undefined; \"kibana.alert.severity\"?: string[] | undefined; \"kibana.alert.suppression.docs_count\"?: string[] | undefined; \"kibana.alert.suppression.end\"?: string[] | undefined; \"kibana.alert.suppression.start\"?: string[] | undefined; \"kibana.alert.suppression.terms.field\"?: string[] | undefined; \"kibana.alert.suppression.terms.value\"?: string[] | undefined; \"kibana.alert.system_status\"?: string[] | undefined; \"kibana.alert.workflow_reason\"?: string[] | undefined; \"kibana.alert.workflow_user\"?: string[] | undefined; \"event.module\"?: string[] | undefined; \"kibana.alert.rule.threat.framework\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.id\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.name\"?: string[] | undefined; \"kibana.alert.rule.threat.tactic.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.reference\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.id\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.name\"?: string[] | undefined; \"kibana.alert.rule.threat.technique.subtechnique.reference\"?: string[] | undefined; \"kibana.alert.building_block_type\"?: string[] | undefined; \"kibana.alert\"?: string[] | undefined; \"kibana.alert.group.field\"?: string[] | undefined; \"kibana.alert.group.value\"?: string[] | undefined; \"kibana.alert.rule\"?: string[] | undefined; \"kibana.alert.rule.exceptions_list\"?: string[] | undefined; \"kibana.alert.rule.namespace\"?: string[] | undefined; \"kibana.alert.suppression.terms\"?: string[] | undefined; } & { [x: string]: unknown[]; }" ], "path": "x-pack/plugins/triggers_actions_ui/public/types.ts", "deprecated": false, @@ -5102,7 +5102,7 @@ "label": "setRuleProperty", "description": [], "signature": [ - "(key: Prop, value: ", + "(key: Prop, value: ", "SanitizedRule", "[Prop] | null) => void" ], @@ -5945,6 +5945,26 @@ "path": "x-pack/plugins/triggers_actions_ui/public/application/app.tsx", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "triggersActionsUi", + "id": "def-public.TriggersAndActionsUiServices.lens", + "type": "Object", + "tags": [], + "label": "lens", + "description": [], + "signature": [ + { + "pluginId": "lens", + "scope": "public", + "docId": "kibLensPluginApi", + "section": "def-public.LensPublicStart", + "text": "LensPublicStart" + } + ], + "path": "x-pack/plugins/triggers_actions_ui/public/application/app.tsx", + "deprecated": false, + "trackAdoption": false } ], "initialIsOpen": false @@ -9436,7 +9456,14 @@ "\nParses the string value used in `xpack.trigger_actions_ui.enableExperimental` kibana configuration,\nwhich should be a string of values delimited by a comma (`,`):\nxpack.trigger_actions_ui.enableExperimental: ['ruleStatusFilter', 'ruleTagFilter']\n" ], "signature": [ - "(configValue: string[]) => Readonly<{ rulesListDatagrid: boolean; internalAlertsTable: boolean; ruleTagFilter: boolean; ruleStatusFilter: boolean; rulesDetailLogs: boolean; ruleUseExecutionStatus: boolean; ruleKqlBar: boolean; isMustacheAutocompleteOn: boolean; showMustacheAutocompleteSwitch: boolean; }>" + "(configValue: string[]) => ", + { + "pluginId": "triggersActionsUi", + "scope": "common", + "docId": "kibTriggersActionsUiPluginApi", + "section": "def-common.ExperimentalFeatures", + "text": "ExperimentalFeatures" + } ], "path": "x-pack/plugins/triggers_actions_ui/common/experimental_features.ts", "deprecated": false, @@ -10155,7 +10182,7 @@ "\nA list of allowed values that can be used in `xpack.trigger_actions_ui.enableExperimental`.\nThis object is then used to validate and parse the value entered." ], "signature": [ - "{ readonly rulesListDatagrid: boolean; readonly internalAlertsTable: boolean; readonly ruleTagFilter: boolean; readonly ruleStatusFilter: boolean; readonly rulesDetailLogs: boolean; readonly ruleUseExecutionStatus: boolean; readonly ruleKqlBar: boolean; readonly isMustacheAutocompleteOn: boolean; readonly showMustacheAutocompleteSwitch: boolean; }" + "{ readonly rulesListDatagrid: true; readonly internalAlertsTable: false; readonly ruleTagFilter: true; readonly ruleStatusFilter: true; readonly rulesDetailLogs: true; readonly ruleUseExecutionStatus: false; readonly ruleKqlBar: false; readonly isMustacheAutocompleteOn: false; readonly showMustacheAutocompleteSwitch: false; }" ], "path": "x-pack/plugins/triggers_actions_ui/common/experimental_features.ts", "deprecated": false, diff --git a/api_docs/triggers_actions_ui.mdx b/api_docs/triggers_actions_ui.mdx index 34d9b1ae953ba..22f705e03b410 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-01-04 +date: 2024-01-25 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 | |-------------------|-----------|------------------------|-----------------| -| 595 | 1 | 569 | 58 | +| 596 | 1 | 570 | 58 | ## Client diff --git a/api_docs/ui_actions.devdocs.json b/api_docs/ui_actions.devdocs.json index 95d88333a2d23..e9f2832c93eaf 100644 --- a/api_docs/ui_actions.devdocs.json +++ b/api_docs/ui_actions.devdocs.json @@ -654,6 +654,61 @@ ], "returnComment": [] }, + { + "parentPluginId": "uiActions", + "id": "def-public.UiActionsService.getFrequentlyChangingActionsForTrigger", + "type": "Function", + "tags": [], + "label": "getFrequentlyChangingActionsForTrigger", + "description": [], + "signature": [ + "(triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]" + ], + "path": "src/plugins/ui_actions/public/service/ui_actions_service.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "uiActions", + "id": "def-public.UiActionsService.getFrequentlyChangingActionsForTrigger.$1", + "type": "string", + "tags": [], + "label": "triggerId", + "description": [], + "signature": [ + "string" + ], + "path": "src/plugins/ui_actions/public/service/ui_actions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "uiActions", + "id": "def-public.UiActionsService.getFrequentlyChangingActionsForTrigger.$2", + "type": "Uncategorized", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "object" + ], + "path": "src/plugins/ui_actions/public/service/ui_actions_service.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "uiActions", "id": "def-public.UiActionsService.executeTriggerActions", @@ -700,7 +755,7 @@ }, { "plugin": "embeddable", - "path": "src/plugins/embeddable/public/tests/container.test.ts" + "path": "src/plugins/embeddable/public/tests/helpers.ts" }, { "plugin": "embeddable", @@ -1271,6 +1326,109 @@ ], "returnComment": [] }, + { + "parentPluginId": "uiActions", + "id": "def-public.Action.subscribeToCompatibilityChanges", + "type": "Function", + "tags": [], + "label": "subscribeToCompatibilityChanges", + "description": [ + "\nAllows this action to call a method when its compatibility changes." + ], + "signature": [ + "((context: Context, onChange: (isCompatible: boolean, action: ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + ") => void) => ", + "Subscription", + " | undefined) | undefined" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "uiActions", + "id": "def-public.Action.subscribeToCompatibilityChanges.$1", + "type": "Uncategorized", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "Context" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "uiActions", + "id": "def-public.Action.subscribeToCompatibilityChanges.$2", + "type": "Function", + "tags": [], + "label": "onChange", + "description": [], + "signature": [ + "(isCompatible: boolean, action: ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + ") => void" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [ + "a subscription that can be used to unsubscribe from the changes." + ] + }, + { + "parentPluginId": "uiActions", + "id": "def-public.Action.couldBecomeCompatible", + "type": "Function", + "tags": [], + "label": "couldBecomeCompatible", + "description": [ + "\nDetermines if action could become compatible given the context. If present,\nit should be much more lenient than `isCompatible` and return true if there\nis any chance that `isCompatible` could return true in the future." + ], + "signature": [ + "((context: Context) => boolean) | undefined" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "uiActions", + "id": "def-public.Action.couldBecomeCompatible.$1", + "type": "Uncategorized", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "Context" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] + }, { "parentPluginId": "uiActions", "id": "def-public.Action.disabled", @@ -1547,6 +1705,109 @@ "path": "src/plugins/ui_actions/public/actions/action.ts", "deprecated": false, "trackAdoption": false + }, + { + "parentPluginId": "uiActions", + "id": "def-public.ActionDefinition.subscribeToCompatibilityChanges", + "type": "Function", + "tags": [], + "label": "subscribeToCompatibilityChanges", + "description": [ + "\nAllows this action to call a method when its compatibility changes." + ], + "signature": [ + "((context: Context, onChange: (isCompatible: boolean, action: ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + ") => void) => ", + "Subscription", + " | undefined) | undefined" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "uiActions", + "id": "def-public.ActionDefinition.subscribeToCompatibilityChanges.$1", + "type": "Uncategorized", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "Context" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + }, + { + "parentPluginId": "uiActions", + "id": "def-public.ActionDefinition.subscribeToCompatibilityChanges.$2", + "type": "Function", + "tags": [], + "label": "onChange", + "description": [], + "signature": [ + "(isCompatible: boolean, action: ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + ") => void" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [ + "a subscription that can be used to unsubscribe from the changes." + ] + }, + { + "parentPluginId": "uiActions", + "id": "def-public.ActionDefinition.couldBecomeCompatible", + "type": "Function", + "tags": [], + "label": "couldBecomeCompatible", + "description": [ + "\nDetermines if action could become compatible given the context. If present,\nit should be much more lenient than `isCompatible` and return true if there\nis any chance that `isCompatible` could return true in the future." + ], + "signature": [ + "((context: Context) => boolean) | undefined" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "children": [ + { + "parentPluginId": "uiActions", + "id": "def-public.ActionDefinition.couldBecomeCompatible.$1", + "type": "Uncategorized", + "tags": [], + "label": "context", + "description": [], + "signature": [ + "Context" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "isRequired": true + } + ], + "returnComment": [] } ], "initialIsOpen": false @@ -2304,6 +2565,36 @@ "trackAdoption": false, "initialIsOpen": false }, + { + "parentPluginId": "uiActions", + "id": "def-public.FrequentCompatibilityChangeAction", + "type": "Type", + "tags": [], + "label": "FrequentCompatibilityChangeAction", + "description": [], + "signature": [ + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.Action", + "text": "Action" + }, + " & Required, \"subscribeToCompatibilityChanges\" | \"couldBecomeCompatible\">>" + ], + "path": "src/plugins/ui_actions/public/actions/action.ts", + "deprecated": false, + "trackAdoption": false, + "initialIsOpen": false + }, { "parentPluginId": "uiActions", "id": "def-public.PresentableGrouping", @@ -2629,7 +2920,15 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + "[]>; readonly getFrequentlyChangingActionsForTrigger: (triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", diff --git a/api_docs/ui_actions.mdx b/api_docs/ui_actions.mdx index 14ec4d033c757..f619d15bdbaa5 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'uiActions'] --- import uiActionsObj from './ui_actions.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 | |-------------------|-----------|------------------------|-----------------| -| 135 | 0 | 93 | 9 | +| 149 | 0 | 103 | 9 | ## Client diff --git a/api_docs/ui_actions_enhanced.mdx b/api_docs/ui_actions_enhanced.mdx index 06ed1525dd171..f136f60e27384 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-01-04 +date: 2024-01-25 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 9a912ac1027c1..027ec24180f6d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedDocViewer'] --- import unifiedDocViewerObj from './unified_doc_viewer.devdocs.json'; diff --git a/api_docs/unified_histogram.devdocs.json b/api_docs/unified_histogram.devdocs.json index 23dd7f92c4067..2af57f51f3ebe 100644 --- a/api_docs/unified_histogram.devdocs.json +++ b/api_docs/unified_histogram.devdocs.json @@ -468,7 +468,7 @@ }, " | undefined; isChartLoading?: boolean | undefined; } & Pick<", "UnifiedHistogramLayoutProps", - ", \"children\" | \"className\" | \"query\" | \"filters\" | \"columns\" | \"container\" | \"onBrushEnd\" | \"disabledActions\" | \"timeRange\" | \"services\" | \"dataView\" | \"relativeTimeRange\" | \"appendHitsCounter\" | \"onFilter\" | \"withDefaultActions\"> & ", + ", \"children\" | \"className\" | \"query\" | \"filters\" | \"columns\" | \"container\" | \"onBrushEnd\" | \"disabledActions\" | \"timeRange\" | \"services\" | \"dataView\" | \"relativeTimeRange\" | \"renderCustomChartToggleActions\" | \"onFilter\" | \"withDefaultActions\"> & ", { "pluginId": "@kbn/shared-ux-utility", "scope": "common", @@ -690,7 +690,15 @@ "section": "def-public.Action", "text": "Action" }, - "[]>; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", + "[]>; readonly getFrequentlyChangingActionsForTrigger: (triggerId: string, context: object) => ", + { + "pluginId": "uiActions", + "scope": "public", + "docId": "kibUiActionsPluginApi", + "section": "def-public.FrequentCompatibilityChangeAction", + "text": "FrequentCompatibilityChangeAction" + }, + "[]; readonly executeTriggerActions: (triggerId: string, context: object) => Promise; readonly clear: () => void; readonly fork: () => ", { "pluginId": "uiActions", "scope": "public", @@ -1236,7 +1244,7 @@ }, " | undefined; isChartLoading?: boolean | undefined; } & Pick<", "UnifiedHistogramLayoutProps", - ", \"children\" | \"className\" | \"query\" | \"filters\" | \"columns\" | \"container\" | \"onBrushEnd\" | \"disabledActions\" | \"timeRange\" | \"services\" | \"dataView\" | \"relativeTimeRange\" | \"appendHitsCounter\" | \"onFilter\" | \"withDefaultActions\">" + ", \"children\" | \"className\" | \"query\" | \"filters\" | \"columns\" | \"container\" | \"onBrushEnd\" | \"disabledActions\" | \"timeRange\" | \"services\" | \"dataView\" | \"relativeTimeRange\" | \"renderCustomChartToggleActions\" | \"onFilter\" | \"withDefaultActions\">" ], "path": "src/plugins/unified_histogram/public/container/container.tsx", "deprecated": false, diff --git a/api_docs/unified_histogram.mdx b/api_docs/unified_histogram.mdx index 9bec81e68ad55..9b4f9e98992ce 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-01-04 +date: 2024-01-25 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 0d5e841aaada5..cd2fe338a8c6f 100644 --- a/api_docs/unified_search.devdocs.json +++ b/api_docs/unified_search.devdocs.json @@ -731,7 +731,7 @@ "SuggestionsListSize", " | undefined; suggestionsAbstraction?: ", "SuggestionsAbstraction", - " | undefined; isScreenshotMode?: boolean | undefined; submitOnBlur?: boolean | undefined; timeHistory?: ", + " | undefined; isScreenshotMode?: boolean | undefined; submitOnBlur?: boolean | undefined; renderQueryInputAppend?: (() => React.ReactNode) | undefined; timeHistory?: ", { "pluginId": "data", "scope": "public", diff --git a/api_docs/unified_search.mdx b/api_docs/unified_search.mdx index b98e1e61aa279..107a8508f3010 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch'] --- import unifiedSearchObj from './unified_search.devdocs.json'; diff --git a/api_docs/unified_search_autocomplete.mdx b/api_docs/unified_search_autocomplete.mdx index 1d7c6f9317dfd..51dec929bd229 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'unifiedSearch.autocomplete'] --- import unifiedSearchAutocompleteObj from './unified_search_autocomplete.devdocs.json'; diff --git a/api_docs/uptime.mdx b/api_docs/uptime.mdx index 92ee3d44518da..abab1e44f0198 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-01-04 +date: 2024-01-25 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 d7d4d5e1139d6..b4c61edea3d50 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'urlForwarding'] --- import urlForwardingObj from './url_forwarding.devdocs.json'; diff --git a/api_docs/usage_collection.mdx b/api_docs/usage_collection.mdx index 5672f86c23a08..361d4e977d609 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'usageCollection'] --- import usageCollectionObj from './usage_collection.devdocs.json'; diff --git a/api_docs/ux.mdx b/api_docs/ux.mdx index 024cb71786684..715afd7b81628 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'ux'] --- import uxObj from './ux.devdocs.json'; diff --git a/api_docs/vis_default_editor.devdocs.json b/api_docs/vis_default_editor.devdocs.json index fc203663b3fbf..8f8b1b408ffd1 100644 --- a/api_docs/vis_default_editor.devdocs.json +++ b/api_docs/vis_default_editor.devdocs.json @@ -97,7 +97,7 @@ "label": "eventEmitter", "description": [], "signature": [ - "EventEmitter" + "events" ], "path": "src/plugins/vis_default_editor/public/default_editor_controller.tsx", "deprecated": false, diff --git a/api_docs/vis_default_editor.mdx b/api_docs/vis_default_editor.mdx index 18110a2986cd7..f5939e427522f 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-01-04 +date: 2024-01-25 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 6d093cb710b76..f77c5bada1197 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-01-04 +date: 2024-01-25 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 1320fe72ef085..cf669993c4314 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-01-04 +date: 2024-01-25 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 19d7fa2ba0e22..9996f214e0615 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-01-04 +date: 2024-01-25 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 358e0aa109bfd..4f78b280be5cc 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-01-04 +date: 2024-01-25 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 8e70657f3210d..3aea7769b1cef 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-01-04 +date: 2024-01-25 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 8df27109a1300..afd006b2c8e7f 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-01-04 +date: 2024-01-25 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 0c5734a0dbf20..80eacf7fbd380 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-01-04 +date: 2024-01-25 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 4e0db374f9487..8c0ade01fe8bc 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-01-04 +date: 2024-01-25 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 193a6c9b0e2c7..aa68fb0758a27 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-01-04 +date: 2024-01-25 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 e94e1d35c22d9..df2c864f1c514 100644 --- a/api_docs/visualizations.devdocs.json +++ b/api_docs/visualizations.devdocs.json @@ -688,7 +688,8 @@ "section": "def-public.PersistedState", "text": "PersistedState" }, - " extends EventEmitter" + " extends ", + "events" ], "path": "src/plugins/visualizations/public/persisted_state/persisted_state.ts", "deprecated": false, @@ -1568,7 +1569,7 @@ "\nGets the Visualize embeddable's local filters" ], "signature": [ - "() => Promise<", + "() => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -1576,7 +1577,7 @@ "section": "def-common.Filter", "text": "Filter" }, - "[]>" + "[]" ], "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", "deprecated": false, @@ -1596,7 +1597,7 @@ "\nGets the Visualize embeddable's local query" ], "signature": [ - "() => Promise<", + "() => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -1612,7 +1613,7 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>" + " | undefined" ], "path": "src/plugins/visualizations/public/embeddable/visualize_embeddable.tsx", "deprecated": false, @@ -6662,7 +6663,23 @@ "label": "VisualizeEmbeddableContract", "description": [], "signature": [ - "{ readonly type: \"visualization\"; readonly id: string; readonly parent?: ", + "{ readonly type: \"visualization\"; readonly id: string; uuid: string; dataViews: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + { + "pluginId": "dataViews", + "scope": "common", + "docId": "kibDataViewsPluginApi", + "section": "def-common.DataView", + "text": "DataView" + }, + "[] | undefined>; readonly parent?: ", { "pluginId": "embeddable", "scope": "public", @@ -6686,7 +6703,135 @@ "section": "def-public.ContainerOutput", "text": "ContainerOutput" }, - "> | undefined; getExplicitInput: () => ", + "> | undefined; localTimeRange: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined>; setLocalTimeRange: (timeRange: ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) => void; getFallbackTimeRange: (() => ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.TimeRange", + "text": "TimeRange" + }, + " | undefined) | undefined; isCompatibleWithLocalUnifiedSearch: (() => boolean) | undefined; canLinkToLibrary: (() => Promise) | undefined; linkToLibrary: (() => Promise) | undefined; canUnlinkFromLibrary: (() => Promise) | undefined; unlinkFromLibrary: (() => Promise) | undefined; hidePanelTitle: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "; parentApi: (", + { + "pluginId": "@kbn/presentation-containers", + "scope": "common", + "docId": "kibKbnPresentationContainersPluginApi", + "section": "def-common.PresentationContainer", + "text": "PresentationContainer" + }, + " & Partial & ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishesViewMode", + "text": "PublishesViewMode" + }, + ">) | undefined; panelTitle: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "; defaultPanelTitle: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + " | undefined; dataLoading: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "; blockingError: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "; panelDescription: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "; disabledActionIds: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "; viewMode: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.ViewMode", + "text": "ViewMode" + }, + ">; getExplicitInput: () => ", { "pluginId": "visualizations", "scope": "public", @@ -6694,7 +6839,7 @@ "section": "def-public.VisualizeInput", "text": "VisualizeInput" }, - "; getDescription: () => string; destroy: () => void; getQuery: () => Promise<", + "; getDescription: () => string; destroy: () => void; getQuery: () => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6710,7 +6855,7 @@ "section": "def-common.AggregateQuery", "text": "AggregateQuery" }, - " | undefined>; getFilters: () => Promise<", + " | undefined; getFilters: () => ", { "pluginId": "@kbn/es-query", "scope": "common", @@ -6718,15 +6863,63 @@ "section": "def-common.Filter", "text": "Filter" }, - "[]>; openInspector: () => ", + "[]; onEdit: () => void; localQuery: ", { - "pluginId": "@kbn/core-mount-utils-browser", + "pluginId": "@kbn/presentation-publishing", "scope": "common", - "docId": "kibKbnCoreMountUtilsBrowserPluginApi", - "section": "def-common.OverlayRef", - "text": "OverlayRef" + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" }, - " | undefined; render: (domNode: HTMLElement) => Promise; readonly isContainer: boolean; reload: () => Promise; getExplicitInputIsEqual: (lastExplicitInput: Partial<", + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Query", + "text": "Query" + }, + " | ", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.AggregateQuery", + "text": "AggregateQuery" + }, + " | undefined>; localFilters: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + { + "pluginId": "@kbn/es-query", + "scope": "common", + "docId": "kibKbnEsQueryPluginApi", + "section": "def-common.Filter", + "text": "Filter" + }, + "[] | undefined>; onPhaseChange: ", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PublishingSubject", + "text": "PublishingSubject" + }, + "<", + { + "pluginId": "@kbn/presentation-publishing", + "scope": "common", + "docId": "kibKbnPresentationPublishingPluginApi", + "section": "def-common.PhaseEvent", + "text": "PhaseEvent" + }, + " | undefined>; setPanelTitle: (newTitle: string | undefined) => void; isEditingEnabled: () => boolean; setHidePanelTitle: (hide: boolean | undefined) => void; getTypeDisplayName: () => string; setPanelDescription: (newTitle: string | undefined) => void; render: (domNode: HTMLElement) => Promise; readonly isContainer: boolean; reload: () => Promise; getExplicitInputIsEqual: (lastExplicitInput: Partial<", { "pluginId": "visualizations", "scope": "public", @@ -6742,7 +6935,7 @@ "section": "def-common.ErrorLike", "text": "ErrorLike" }, - ", domNode: Element | HTMLElement) => any) | undefined; fatalError?: Error | undefined; getAppContext: () => ", + ", domNode: Element | HTMLElement) => any) | undefined; fatalError?: Error | undefined; getEditHref: () => string | undefined; getAppContext: () => ", { "pluginId": "embeddable", "scope": "public", @@ -6882,7 +7075,7 @@ "section": "def-common.Adapters", "text": "Adapters" }, - " | undefined; updateOutput: (outputChanges: Partial<", + " | undefined; untilInitializationFinished: () => Promise; updateOutput: (outputChanges: Partial<", "VisualizeOutput", ">) => void; supportedTriggers: () => string[]; getVis: () => ", { @@ -6900,7 +7093,15 @@ "section": "def-common.VisParams", "text": "VisParams" }, - ">; transferCustomizationsToUiState: () => void; hasInspector: () => boolean; onContainerLoading: () => void; onContainerData: () => void; onContainerRender: () => void; onContainerError: (error: ", + ">; openInspector: () => ", + { + "pluginId": "@kbn/core-mount-utils-browser", + "scope": "common", + "docId": "kibKbnCoreMountUtilsBrowserPluginApi", + "section": "def-common.OverlayRef", + "text": "OverlayRef" + }, + " | undefined; transferCustomizationsToUiState: () => void; hasInspector: () => boolean; onContainerLoading: () => void; onContainerData: () => void; onContainerRender: () => void; onContainerError: (error: ", { "pluginId": "expressions", "scope": "public", @@ -15715,7 +15916,7 @@ "label": "TimeScaleUnit", "description": [], "signature": [ - "\"m\" | \"d\" | \"h\" | \"s\"" + "\"m\" | \"s\" | \"d\" | \"h\"" ], "path": "src/plugins/visualizations/common/convert_to_lens/types/common.ts", "deprecated": false, diff --git a/api_docs/visualizations.mdx b/api_docs/visualizations.mdx index 7232243e38c10..edf70f1cd782d 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-01-04 +date: 2024-01-25 tags: ['contributor', 'dev', 'apidocs', 'kibana', 'visualizations'] --- import visualizationsObj from './visualizations.devdocs.json'; diff --git a/config/serverless.oblt.yml b/config/serverless.oblt.yml index 86b3aabadbe5e..d956cae5ba946 100644 --- a/config/serverless.oblt.yml +++ b/config/serverless.oblt.yml @@ -34,6 +34,10 @@ xpack.observability.createO11yGenericFeatureId: true ## APM Serverless Onboarding flow xpack.apm.serverlessOnboarding: true +# Synthetics mTLS cert locations +xpack.uptime.service.tls.certificate: /mnt/elastic-internal/http-certs/tls.crt +xpack.uptime.service.tls.key: /mnt/elastic-internal/http-certs/tls.key + # Fleet specific configuration xpack.fleet.internal.registry.capabilities: ['apm', 'observability'] xpack.fleet.internal.registry.kibanaVersionCheckEnabled: false @@ -46,10 +50,6 @@ xpack.fleet.internal.registry.excludePackages: [ 'beaconing', 'osquery_manager', - # synthetics is not enabled yet - 'synthetics', - 'synthetics_dashboards', - # Removed in 8.11 integrations 'cisco', 'microsoft', @@ -58,6 +58,9 @@ xpack.fleet.internal.registry.excludePackages: [ # ML integrations 'dga', + + # Profiling integrations + 'profiler_agent', ] ## Required for force installation of APM Package diff --git a/config/serverless.security.yml b/config/serverless.security.yml index f47d3b02a1bf0..23ac7ecfdf967 100644 --- a/config/serverless.security.yml +++ b/config/serverless.security.yml @@ -16,6 +16,7 @@ xpack.securitySolutionServerless.productTypes: [ { product_line: 'security', product_tier: 'complete' }, { product_line: 'endpoint', product_tier: 'complete' }, + { product_line: 'cloud', product_tier: 'complete' }, ] xpack.securitySolution.offeringSettings: { diff --git a/docs/CHANGELOG.asciidoc b/docs/CHANGELOG.asciidoc index 63b13250a1591..5e5681047e938 100644 --- a/docs/CHANGELOG.asciidoc +++ b/docs/CHANGELOG.asciidoc @@ -10,6 +10,8 @@ Review important information about the {kib} 8.x releases. +* <> +* <> * <> * <> * <> @@ -56,6 +58,273 @@ Review important information about the {kib} 8.x releases. * <> -- +[[release-notes-8.12.0]] +== {kib} 8.12.0 + +For information about the {kib} 8.12.0 release, review the following information. + +[float] +[[breaking-changes-8.12.0]] +=== Breaking changes + +Breaking changes can prevent your application from optimal operation and performance. +Before you upgrade to 8.12.0, review the breaking changes, then mitigate the impact to your application. + +[discrete] +[[breaking-172224]] +.New SLO architecture +[%collapsible] +==== +*Details* + +We introduce a breaking change in the SLO features that will break any SLOs created before 8.12. These SLOs have to be manually reset through an API until we provide a UI for it. The data aggregated over time (rollup) is still available in the sli v2 index, but won't be used for summary calculation when reset. + +The previous summary transforms summarizing every SLOs won't be used anymore and can be stopped and deleted: + +* slo-summary-occurrences-7d-rolling +* slo-summary-occurrences-30d-rolling +* slo-summary-occurrences-90d-rolling +* slo-summary-occurrences-monthly-aligned +* slo-summary-occurrences-weekly-aligned +* slo-summary-timeslices-7d-rolling +* slo-summary-timeslices-30d-rolling +* slo-summary-timeslices-90d-rolling +* slo-summary-timeslices-monthly-aligned +* slo-summary-timeslices-weekly-aligned + +Be aware that when installing a new SLO (or after resetting an SLO), we install two transforms (one for the rollup data and one that summarize the rollup data). Do not delete the new `slo-summary-{slo_id}-{slo_revision}` transforms. For more information, refer to ({kibana-pull}172224[#172224]). +==== + +[discrete] +[[breaking-170635]] +.A new sub-feature privilege to control user access to the cases settings +[%collapsible] +==== +*Details* + +Roles with at least a sub-feature privilege configured will not have access to the cases setting like they had previously. All roles without a sub-feature privilege configured will not be affected. For more information, refer to ({kibana-pull}170635[#170635]). +==== + +[float] +[[features-8.12.0]] +=== Features +{kib} 8.12.0 adds the following new and notable features. + +APM:: +* Adds viewInApp URL to the custom threshold rule type ({kibana-pull}171985[#171985]). +* Adds back the mobile crashes & errors tab ({kibana-pull}165892[#165892]). +Cases:: +* The case list filter bar is now customizable, filters are removable and custom fields can be used as filters ({kibana-pull}172276[#172276]). +Elastic Security:: +For the Elastic Security 8.12.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Elastic Search:: +* Display E5 multilingual callout ({kibana-pull}171887[#171887]). +* Replace model selection dropdown with list ({kibana-pull}171436[#171436]). +Fleet:: +* Adds support for preconfigured output secrets (Scrypt edition) ({kibana-pull}172041[#172041]). +* Adds UI components to create and edit output secrets ({kibana-pull}169429[#169429]). +* Adds support for remote ES output ({kibana-pull}169252[#169252]). +* Adds the ability to specify secrets in outputs ({kibana-pull}169221[#169221]). +* Adds an integrations configs tab to display input templates ({kibana-pull}168827[#168827]). +* Adds a {kib} task to publish Agent metrics ({kibana-pull}168435[#168435]). +Lens & Visualizations:: +* Adds the ability to edit charts made by {esql} queries in Dashboard ({kibana-pull}169911[#169911]). +Machine Learning:: +* Adds E5 model configurations ({kibana-pull}172053[#172053]). +* Adds the ability to create a categorization anomaly detection job from pattern analysis ({kibana-pull}170567[#170567]). +* Adds and displays alerts data in the Anomaly Explorer ({kibana-pull}167998[#167998]). +Observability:: +* Adds logic to update flyout highlights ({kibana-pull}172193[#172193]). +* Adds logic to display highlights in the flyout ({kibana-pull}170650[#170650]). +* Changes the Custom threshold title to Beta ({kibana-pull}172360[#172360]). +Security:: +* Disables the connector parameters field ({kibana-pull}173610[#173610]). +* Adds a risk engine missing privileges callout ({kibana-pull}171250[#171250]). +* Asset criticality privileges API ({kibana-pull}172441[#172441]). +Uptime:: +* Global params Public APIs ({kibana-pull}169669[#169669]). +* Private location public API's ({kibana-pull}169376[#169376]). +* Settings public API ({kibana-pull}163400[#163400]). + +For more information about the features introduced in 8.12.0, refer to <>. + +[[enhancements-and-bug-fixes-v8.12.0]] +=== Enhancements and bug fixes + +For detailed information about the 8.12.0 release, review the enhancements and bug fixes. + +[float] +[[enhancement-v8.12.0]] +=== Enhancements +Alerting:: +* Auto close ServiceNow incidents when alerts are resolved ({kibana-pull}171760[#171760]). +* PagerDuty connector now supports the links and `custom_details` attributes ({kibana-pull}171748[#171748]). +* Adds a mute and unmute action component in the alerts table row actions ({kibana-pull}170651[#170651]). +* Extends the PagerDuty connector API to support the `links` and `custom_details` attributes provided by the Event API ({kibana-pull}170459[#170459]). +* Adds toggle for alert as data fields in alert templating ({kibana-pull}170162[#170162]). +APM:: +* Perform functions and LLM interactions on the server ({kibana-pull}172590[#172590]). +* Adds viewInApp URL to the custom threshold rule type ({kibana-pull}171985[#171985]). +* Adds the KQL bar to embeddables ({kibana-pull}171016[#171016]). +* Enables the average mobile app launch time panel ({kibana-pull}170773[#170773]). +* Enables the mobile most launches panel ({kibana-pull}168925[#168925]). +* Improves the Differential Top N functions grid view ({kibana-pull}170008[#170008]). +Cases:: +* Users can copy to the clipboard the hashes of files uploaded to cases ({kibana-pull}172450[#172450]). +* Allow users to configure which columns are displayed in the cases list including custom fields ({kibana-pull}170950[#170950]). +* Adds a new sub-feature privilege to control user access to the cases settings ({kibana-pull}170635[#170635]). +Dashboard:: +* Adds Links to the Visualization library ({kibana-pull}170810[#170810]). +Discover:: +* Adds a field tokens column in the grid header ({kibana-pull}167179[#167179]). +* Enables the addition of columns from the document viewer when using ES|QL ({kibana-pull}171083[#171083]). +* Adds field search via wildcards in the document viewer ({kibana-pull}168616[#168616]). +* Improves search for field names by handling spaces like wildcards ({kibana-pull}168381[#168381]). +* Updates mapping conflict popover with types list ({kibana-pull}169855[#169855]). +* On search source error, show 'view details' action that opens request in inspector ({kibana-pull}170790[#170790]). +* Adds an Unsaved changes label when in an unsaved state of saved search ({kibana-pull}169548[#169548]). +* Allows changing the current sample size and saving it with a saved search ({kibana-pull}157269[#157269]). +* Adds new sparse vector and dense vector icons ({kibana-pull}169493[#169493]). +* Adds `sparse_vector` field support ({kibana-pull}168186[#168186]). +Elastic Security:: +For the Elastic Security 8.12.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Elastic Search:: +* Trained models can now be deployed and started directly from the Machine Learning inference pipeline configuration flyout ({kibana-pull}173434[#173434]). +Fleet:: +* Adds support for Elasticsearch output performance presets ({kibana-pull}172359[#172359]). +* Adds a new `keep_monitoring_alive` flag to agent policies ({kibana-pull}168865[#168865]). +* Adds support for additional types for dynamic mappings ({kibana-pull}168842[#168842]). +* Implements Elastic Agent upgrade states UI ({kibana-pull}167539[#167539]). +* Use default component templates from Elasticsearch ({kibana-pull}163731[#163731]). +Lens & Visualizations:: +* Moves the tagcloud visualization in *Lens* out of experimental status ({kibana-pull}168824[#168824]). +* Allows coloring an entire metric panel when applying a maximum value to the metric visualization in **Lens** ({kibana-pull}172531[#172531]). +* Adds truncation for data view pickers and field lists with many characters ({kibana-pull}172296[#172296]). +* Allows searching in the {esql} inline documentation description ({kibana-pull}171916[#171916]). +* Allows setting non-numeric metrics for metric visualizations in *Lens* ({kibana-pull}169258[#169258]). +Machine Learning:: +* Removes the beta badge from ML alerting rules ({kibana-pull}173545[#173545]). +* Removes the technical preview badge from AIOps log rate analysis ({kibana-pull}172722[#172722]). +* Adds anomaly description as an alert message for the anomaly detection rule type ({kibana-pull}172473[#172473]). +* Adds a sampled percentage of documents, and cardinality, for text fields for the Data Visualizer Field statistics tab and addresses an issue with a missing bucket in the document count chart ({kibana-pull}172378[#172378]). +* Adds option to display an overlay chart on the data drift expanded row ({kibana-pull}172239[#172239]). +* AIOps: Shows top N results when no documents are in baseline or deviation in log rate analysis({kibana-pull}171924[#171924]). +* AIOps: Adds support to restore baseline and deviation from URL state on page refresh for log rate analysis ({kibana-pull}171398[#171398]). +* Validates and limits threading parameters for starting a model deployment ({kibana-pull}171921[#171921]). +* Trained models: Adds a missing job node to models map view when original job has been deleted ({kibana-pull}171590[#171590]). +* Trained models list: Disables the View training data action if data frame analytics job no longer exists ({kibana-pull}171061[#171061]). +* Adds a trained model flyout with available models to download for in the Trained Models UI ({kibana-pull}171024[#171024]). +* Allows temporary data views in the anomaly detection jobs wizards ({kibana-pull}170112[#170112]). +* Assigns downloaded ELSER models to the `*` space ({kibana-pull}169939[#169939]). +* Adds pattern analysis to the anomaly action menu ({kibana-pull}169400[#169400]). +* Adds test pipeline action for data frame analysis trained models in models list ({kibana-pull}168400[#168400]). +Management:: +* Adds a search bar to the Clusters and shards tab ({kibana-pull}171806[#171806]). +* Aligns data view and destination index creation workflows in Transforms and Data Frame Analytics wizards ({kibana-pull}171202[#171202]). +* The index lifecycle summary on the Index lifecycle page is now displayed in a separate tab ({kibana-pull}170726[#170726]). +* Adds the ability to view mappings conflicts in data views on the data view management page ({kibana-pull}169381[#169381]). +* Implements index overview cards ({kibana-pull}168153[#168153]). +Observability:: +* Reset UI for updating outdated SLOs ({kibana-pull}172883[#172883]). +* Adds timeslice metric indicator for SLOs ({kibana-pull}168539[#168539]). +* Adds logic to update flyout highlights ({kibana-pull}172193[#172193]). +* Sets budget consumed mode as the default mode for burn rate rule configuration ({kibana-pull}171433[#171433]). +* Allow users to define burn rate windows using budget consumed ({kibana-pull}170996[#170996]). +* Makes rules created in Discover visible in Observability ({kibana-pull}171364[#171364]). +* Adds support for document count to custom metric indicator ({kibana-pull}170913[#170913]). +* Improves displaying inline frames ({kibana-pull}169212[#169212]). +* Adds summary insight to the Differential flamegraph ({kibana-pull}168978[#168978]). +* Include `search-*` when recalling documents ({kibana-pull}173710[#173710]). +Platform:: +* Limits `elasticsearch.maxSockets` to 800 by default ({kibana-pull}151911[#151911]). +Presentation:: +* Adds popover message in the control title ({kibana-pull}172094[#172094]). +* Displays incomplete results warning in layer legend ({kibana-pull}171144[#171144]). +* Updates incomplete data messaging ({kibana-pull}169578[#169578]). +Reporting:: +* Makes searches used for CSV export inspectable ({kibana-pull}171248[#171248]). +* Adds `max_concurrent_shards` setting to schema for the point in time CSV report generation ({kibana-pull}170344[#170344]). +Security:: +* The default value of the `elasticsearch.requestHeadersWhitelist` configuration option has been expanded to include the `es-client-authentication` HTTP header, in addition to `authorization` ({kibana-pull}172444[#172444]). +* Adds risk engine missing privileges callout ({kibana-pull}171250[#171250]). +* Implements Asset Criticality Create, Read & Delete APIs ({kibana-pull}172073[#172073]). + +[float] +[[fixes-v8.12.0]] +=== Bug Fixes +Alerting:: +* Fixes the alert details page search bar not considering Query configurations in the {kib} advanced settings ({kibana-pull}172498[#172498]). +* Fixes adding evaluation threshold to alert payload for ES query rule ({kibana-pull}171571[#171571]). +* Hides the Logs tab in Rules page to unauthorized users ({kibana-pull}171417[#171417]). +* Fixes hyperlinks in Slack messages being broken when there is "_" or "*" in the URL ({kibana-pull}170067[#170067]). +APM:: +* Removes usage of internal client when fetching agent configuration etags metrics ({kibana-pull}173001[#173001]). +* Fixes encoding custom links values ({kibana-pull}171032[#171032]). +* Fixes an issue where data views were previously not space aware ({kibana-pull}170857[#170857]). +* Fixes issue with onboarding page around java agent ({kibana-pull}168816[#168816]). +* Adds a data tier filter to the `/has_data` API ({kibana-pull}173382[#173382]). +Cases:: +* Fixes a bug that prevented users with read permission from being assigned to cases ({kibana-pull}172047[#172047]). +Dashboard:: +* Prevents unnecessary loss of dashboard unsaved state ({kibana-pull}167707[#167707]). +Discover:: +* Fixes escaping column names when copying ({kibana-pull}170997[#170997]). +* Discover sharing links now preserve customized column widths ({kibana-pull}172405[#172405]). +* Fixes displaying the columns as they are returned from the query ({kibana-pull}171874[#171874]). +* Fixes issue with `defaultColumns` when changing data views ({kibana-pull}168994[#168994]). +Elastic Security:: +For the Elastic Security 8.12.0 release information, refer to {security-guide}/release-notes.html[_Elastic Security Solution Release Notes_]. +Fleet:: +* Allows agent upgrades if patch version is higher than {kib} ({kibana-pull}173167[#173167]). +* Fixes secrets with dot-separated variable names ({kibana-pull}173115[#173115]). +* Fixes endpoint privilege management endpoints return errors ({kibana-pull}171722[#171722]). +* Fixes expiration time for immediate bulk upgrades being too short ({kibana-pull}170879[#170879]). +* Fixes incorrect overwrite of `logs-*` and `metrics-*` data views on every integration install ({kibana-pull}170188[#170188]). +* Creates intermediate objects when using dynamic mappings ({kibana-pull}169981[#169981]). +Lens & Visualizations:: +* Fixes the sorting of null values so they are displayed last ({kibana-pull}172691[#172691]). +* Fixes the overwriting of chart descriptions after editing a visualization in *Lens* ({kibana-pull}172653[#172653]). +* Fixes an issue where the timerange panel wasn't correctly assigned during a conversion from dashboard to *Lens* ({kibana-pull}172647[#172647]). +* Various fixes for heatmap in *Lens* ({kibana-pull}172602[#172602]). +* Fixes filters being lost when navigating from dashboard -> editor -> *Lens* in *TSVB* ({kibana-pull}172566[#172566]). +* Ignore drop ES|QL commands for date histogram in discover ({kibana-pull}171769[#171769]). +Machine Learning:: +* Ensures data frame analytics job can be deleted from analytics map ({kibana-pull}174212[#174212]). +* Fixes filter for boolean fields filtering for numbers in Field statistics / Data Visualizer ({kibana-pull}174212[#174050]) +* Fixes registering of the ML alerting rules with the basic license ({kibana-pull}173644[#173644]). +* Fixes display of actions column in the datafeed chart flyout ({kibana-pull}173365[#173365]). +* Fixes View in Discover option in Anomaly explorer not handling multiple field values or values with quotation marks ({kibana-pull}172897[#172897]). +* Fixes field stats in Discover showing 0 sample count at times when switching data views ({kibana-pull}172734[#172734]). +* Fixes long field names overflowing in Anomaly detection wizard detector selection ({kibana-pull}172715[#172715]). +* Fixes data drift numeric fields not showing correctly ({kibana-pull}172504[#172504]). +* Fixes Data Visualizer / ML field stats and Data Frame Analytics to exclude _tier fields ({kibana-pull}172223[#172223]). +* Uses standard analyzer in log pattern analysis to ensure filter in Discover matches correct documents ({kibana-pull}172188[#172188]). +* Fixes ML node check and checks user privileges to create job button in dashboard ({kibana-pull}172022[#172022]). +* Fixes {kib} object list in new job from recognized index page ({kibana-pull}171935[#171935]). +Management:: +* Fixes retention policy field name not setting by default correctly in the Transform creation wizard ({kibana-pull}172609[#172609]). +Metrics:: +* Moves formulas and dashboard config to inventory models ({kibana-pull}171872[#171872]). +Platform:: +* Fixes a bug that could cause the `rollingFile` log appender to not properly rotate files on DST switch days ({kibana-pull}173811[#173811]). +* Fixes context formula functions ({kibana-pull}172710[#172710]). +Observability:: +* Removes legacy screenshot image data from the codepath in Synthetics ({kibana-pull}172684[#172684]). +* Fixes incorrect rule parameters when changing aggregation type using a custom equation ({kibana-pull}171958[#171958]). +* Adds parent link in host detail's breadcrumb ({kibana-pull}170792[#170792]). +Presentation:: +* Fixes validation query for nested fields ({kibana-pull}173690[#173690]). +* Fixes user privileges around Links panels saved to the library ({kibana-pull}173332[#173332]). +* Prevents overflowing dashboard title on saved toast notifications ({kibana-pull}172620[#172620]). +* Ignore indices without geometry field in vector tile requests ({kibana-pull}171472[#171472]). +* Fixes layer displaying no data instead of error ({kibana-pull}170084[#170084]). + +[[release-notes-8.11.4]] +== {kib} 8.11.4 + +[float] +[[fixes-v8.11.4]] +=== Bug fixes and enhancements +There are no user-facing changes in the 8.11.4 release. + [[release-notes-8.11.3]] == {kib} 8.11.3 @@ -555,17 +824,80 @@ Before you upgrade to 8.10.0, review the breaking changes, then mitigate the imp [discrete] [[breaking-162665]] -.New summary search capabilities +.New summary search capabilities cause existing SLOs to stop working [%collapsible] ==== *Details* + -New summary search capabilities introduce breaking changes in various places, and we have decided to not handle backward compatibility: +New summary search capabilities introduce breaking changes in various places, and we have decided not to handle backward compatibility: + +* SLO find API body parameters have changed. +* The index mapping used by the rollup data has changed, and we have added a summary index that becomes the new source of truth for search. +* The rollup transforms have been updated, but existing SLO with their transforms won't be updated. + +If some SLOs have been installed in a prior version at 8.10, they won't work after migrating to 8.10. There are two approaches to handle this breaking change. The recommended route is to delete all SLOs before migrating to 8.10. The alternative is to migrate to 8.10 and manually remove the SLOs. + +*Removing SLOs before migrating to 8.10* + +Use the SLO UI or the SLO delete API to delete all existing SLOs. This takes care of the Saved Object, Transform and rollup data. When all SLOs have been deleted, then delete the residual rollup indices: `.slo-observability.sli-v1*`. Note that this is v1. + +*Removing SLOs after migrating to 8.10* + +After migrating to 8.10, the previously created SLOs won’t appear in the UI because the API is using a new index. The previously created SLOs still exist, and associated transforms are still rolling up data into the previous index `.slo-observability.sli-v1*`. The SLO delete API can't be used now, so remove the resources resources manually: + +. Find all existing transforms +All SLO related transforms start with the `slo-` prefix, this request returns them all: ++ +[source, bash] +---- +GET _transform/slo-* +---- ++ +Make a note of all the transforms IDs for later. + +. Stop all transforms ++ +[source, bash] +---- +POST _transform/slo-*/_stop?force=true +---- -* SLO find API body parameters have changed -* The index mapping used by the rollup data has changed, and we have added a summary index that becomes the new source of truth for search -* The rollup transform have been updated, but existing SLO with their transform won't be updated. +. Remove all transforms ++ +From the list of transforms returned during the first step, now delete them one by one: ++ +[source, bash] +---- +DELETE _transform/{transform_id}?force=true +---- -If some SLOs have been installed in a prior version at 8.10, the user will need to remove them manually from the UI, or by deleting the Saved Object and the associated Transform. +. Find the SLO saved objects ++ +This request lists all the SLO saved objects. The SLO IDs and the saved object IDs are not the same. ++ +[source, bash] +---- +GET kbn:/api/saved_objects/_find?type=slo +---- ++ +Make a note of all the saved object IDs from the response. + +. Remove the SLO saved objects ++ +For each saved object ID, run the following: ++ +[source, bash] +---- +DELETE kbn:/api/saved_objects/slo/{Saved_Object_Id} +---- + +. Delete the rollup indices v1 ++ +Note that this is v1. ++ +[source, bash] +---- +DELETE .slo-observability.sli-v1* +---- ==== [discrete] @@ -676,7 +1008,6 @@ Observability:: For more information about the features introduced in 8.10.0, refer to <>. -[discrete] [[enhancements-and-bug-fixes-v8.10.0-revised]] === Enhancements and bug fixes @@ -5463,7 +5794,7 @@ conditions are true: In 8.0.0 and later, weak links break because <>. This applies to both the UI and the API. -This issue will be fixed 8.0.1 and 8.1.0. For more information, refer to {kibana-issue}123550[#123550]. +For more information, refer to {kibana-issue}123550[#123550]. *Impact* + Saved objects in 7.x that are migrated during upgrade are **not** impacted. diff --git a/docs/api/alerting/list_rule_types.asciidoc b/docs/api/alerting/list_rule_types.asciidoc index 05324e9b9a026..e7a7c1ad14063 100644 --- a/docs/api/alerting/list_rule_types.asciidoc +++ b/docs/api/alerting/list_rule_types.asciidoc @@ -63,7 +63,8 @@ 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`:: TBD +`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. @@ -82,7 +83,8 @@ action. (boolean) Indicates whether the rule type is enabled or disabled based on the subscription. -// `has_alerts_mappings`:: TBD +`has_alerts_mappings`:: +(boolean) Indicates whether the rule type has custom mappings for the alert data. // `has_fields_for_a_a_d`:: TBD diff --git a/docs/api/osquery-manager/live-queries/create.asciidoc b/docs/api/osquery-manager/live-queries/create.asciidoc index 16fbade0eb061..c080cfe08a903 100644 --- a/docs/api/osquery-manager/live-queries/create.asciidoc +++ b/docs/api/osquery-manager/live-queries/create.asciidoc @@ -49,6 +49,8 @@ experimental[] Create live queries. `metadata`:: (Optional, object) Custom metadata object associated to the live query. +`timeout`:: (Optional, number) A timeout period, in seconds, after which the query will stop running. Overwriting the default timeout allows you to support queries that require more time to complete. The default and minimum supported value is `60`. The maximum supported value is `900`. + [[osquery-manager-live-queries-api-create-request-codes]] ==== Response code @@ -69,13 +71,13 @@ Run a live query on all supported agents: $ curl -X POST api/osquery/live_queries \ { "query": "select * from uptime;", - "ecs_mapping": { "host.uptime": { "field": "total_seconds" } }, "agent_all": true, + "timeout": 120 } -------------------------------------------------- @@ -110,6 +112,7 @@ The API returns the live query object: "action_id": "609c4c66-ba3d-43fa-afdd-53e244577aa0", # unique ID of the query, use it when querying the live query API to get the single query results "id": "6724a474-cbba-41ef-a1aa-66aebf0879e2", # ID of the query, doesn't have to be unique "query": "select * from uptime;", + "timeout": 120, "ecs_mapping": { "host.uptime": { "field": "total_seconds" diff --git a/docs/api/osquery-manager/packs/create.asciidoc b/docs/api/osquery-manager/packs/create.asciidoc index 280f6a1d9fe75..84e8c3e71eb5c 100644 --- a/docs/api/osquery-manager/packs/create.asciidoc +++ b/docs/api/osquery-manager/packs/create.asciidoc @@ -69,6 +69,7 @@ $ curl -X POST api/osquery/packs \ "my_query": { "query": "SELECT * FROM listening_ports;", "interval": 60, + "timeout": 120, "ecs_mapping": { "client.port": { "field": "port" diff --git a/docs/api/osquery-manager/saved-queries/create.asciidoc b/docs/api/osquery-manager/saved-queries/create.asciidoc index 61f415845a5aa..75b764ded6023 100644 --- a/docs/api/osquery-manager/saved-queries/create.asciidoc +++ b/docs/api/osquery-manager/saved-queries/create.asciidoc @@ -35,10 +35,12 @@ experimental[] Create saved queries. `version`:: (Optional, string) Uses the Osquery versions greater than or equal to the specified version string. -`interval`:: (Optional, integer) An interval, in seconds, to run the query. +`interval`:: (Optional, string) An interval, in seconds, on which to run the query. `ecs_mapping`:: (Optional, object) Maps Osquery results columns or static values to ECS fields. +`timeout`:: (Optional, number) A timeout period, in seconds, after which the query will stop running. Overwriting the default timeout allows you to support queries that require more time to complete. The default and minimum supported value is `60`. The maximum supported value is `900`. + [[osquery-manager-saved-queries-api-create-request-codes]] ==== Response code @@ -60,6 +62,7 @@ $ curl -X POST api/osquery/saved_queries \ "description": "Saved query description", "query": "select * from uptime;", "interval": "60", + "timeout": 120, "version": "2.8.0", "platform": "linux,darwin", "ecs_mapping": { diff --git a/docs/apm/api.asciidoc b/docs/apm/api.asciidoc index 341e75bbb835c..113a03437cbef 100644 --- a/docs/apm/api.asciidoc +++ b/docs/apm/api.asciidoc @@ -573,7 +573,7 @@ curl -X POST "http://localhost:5601/api/apm/sourcemaps" \ -H 'Authorization: ApiKey ${YOUR_API_KEY}' \ -F 'service_name="foo"' \ -F 'service_version="1.0.0"' \ --F 'bundle_filepath="/test/e2e/general-usecase/bundle.js.map"' \ +-F 'bundle_filepath="/test/e2e/general-usecase/bundle.js"' \ -F 'sourcemap="{\"version\":3,\"file\":\"static/js/main.chunk.js\",\"sources\":[\"fleet-source-map-client/src/index.css\",\"fleet-source-map-client/src/App.js\",\"webpack:///./src/index.css?bb0a\",\"fleet-source-map-client/src/index.js\",\"fleet-source-map-client/src/reportWebVitals.js\"],\"sourcesContent\":[\"content\"],\"mappings\":\"mapping\",\"sourceRoot\":\"\"}"' <1> -------------------------------------------------- <1> Alternatively, upload the source map as a file with `-F 'sourcemap=@path/to/source_map/bundle.js.map'` @@ -647,7 +647,7 @@ curl -X GET "http://localhost:5601/api/apm/sourcemaps" \ "body": { "serviceName": "foo", "serviceVersion": "1.0.0", - "bundleFilepath": "/test/e2e/general-usecase/bundle.js.map", + "bundleFilepath": "/test/e2e/general-usecase/bundle.js", "sourceMap": { "version": 3, "file": "static/js/main.chunk.js", diff --git a/docs/concepts/data-views.asciidoc b/docs/concepts/data-views.asciidoc index 992741be518a7..2eba42aed3051 100644 --- a/docs/concepts/data-views.asciidoc +++ b/docs/concepts/data-views.asciidoc @@ -172,3 +172,14 @@ WARNING: Deleting a {data-source} breaks all visualizations, saved searches, and . Find the {data-source} that you want to delete, and then click image:management/index-patterns/images/delete.png[Delete icon] in the *Actions* column. + +[float] +[[data-view-field-cache]] +=== {data-source} field cache + +The browser caches {data-source} field lists for increased performance. This is particularly impactful +for {data-sources} with a high field count that span a large number of indices and clusters. The field +list is updated every couple of minutes in typical {kib} usage. Alternatively, use the refresh button on the {data-source} +management detail page to get an updated field list. A force reload of {kib} has the same effect. + +The field list may be impacted by changes in indices and user permissions. \ No newline at end of file diff --git a/docs/developer/plugin-list.asciidoc b/docs/developer/plugin-list.asciidoc index e50cadb8f1398..7f37f5471a27f 100644 --- a/docs/developer/plugin-list.asciidoc +++ b/docs/developer/plugin-list.asciidoc @@ -274,6 +274,10 @@ Content is fetched from the remote (https://feeds.elastic.co) once a day, with p |Helps to globally configure the no data page components +|{kib-repo}blob/{branch}/src/plugins/presentation_panel/README.md[presentationPanel] +|The Presentation Panel is the point of contact between any React component and any registered UI actions. Components provided to the Presentation Panel should use an imperative handle to expose methods and state. + + |{kib-repo}blob/{branch}/src/plugins/presentation_util/README.mdx[presentationUtil] |The Presentation Utility Plugin is a set of common, shared components and toolkits for solutions within the Presentation space, (e.g. Dashboards, Canvas). @@ -502,10 +506,6 @@ The plugin exposes the static DefaultEditorController class to consume. |Integrates with FullStory in order to provide better product analytics, so we can understand how our users make use of Kibana. This plugin should only run on Elastic Cloud. -|{kib-repo}blob/{branch}/x-pack/plugins/cloud_integrations/cloud_gain_sight/README.md[cloudGainsight] -|Integrates with Gainsight in order to provide better product analytics, so we can understand how our users make use of Kibana. This plugin should only run on Elastic Cloud. - - |{kib-repo}blob/{branch}/x-pack/plugins/cloud_integrations/cloud_links/README.md[cloudLinks] |Adds all the links to the Elastic Cloud console. diff --git a/docs/management/advanced-options.asciidoc b/docs/management/advanced-options.asciidoc index c0307253a7208..f18b29ac3737a 100644 --- a/docs/management/advanced-options.asciidoc +++ b/docs/management/advanced-options.asciidoc @@ -433,6 +433,9 @@ Set the default environment for the APM app. When left empty, data from all envi [[observability-apm-enable-profiling]]`observability:apmEnableProfilingIntegration`:: Enable the Universal Profiling integration in APM. +[[observability-apm-enable-table-search-bar]]`observability:apmEnableTableSearchBar`:: +beta:[] Enables faster searching in APM tables by adding a handy search bar with live filtering. Available for the following tables: Services, Transactions, and Errors. + [[observability-enable-aws-lambda-metrics]]`observability:enableAwsLambdaMetrics`:: preview:[] Display Amazon Lambda metrics in the service metrics tab. diff --git a/docs/management/cases/images/cases-files.png b/docs/management/cases/images/cases-files.png index 03636626911ad..c7eaf32bd1538 100644 Binary files a/docs/management/cases/images/cases-files.png and b/docs/management/cases/images/cases-files.png differ diff --git a/docs/management/cases/images/cases.png b/docs/management/cases/images/cases.png index b85ab9165c961..7fee49af5dd55 100644 Binary files a/docs/management/cases/images/cases.png and b/docs/management/cases/images/cases.png differ diff --git a/docs/management/cases/manage-cases.asciidoc b/docs/management/cases/manage-cases.asciidoc index a531299b95797..50c2bc0ff5ff5 100644 --- a/docs/management/cases/manage-cases.asciidoc +++ b/docs/management/cases/manage-cases.asciidoc @@ -123,6 +123,9 @@ image::images/cases-files.png[A list of files attached to a case] The acceptable file types and sizes are affected by your <>. +To download or delete the file or copy the file hash to your clipboard, open the action menu (…). +The available hash functions are MD5, SHA-1, and SHA-256. + When you upload a file, a comment is added to the case activity log. To view images, click their name in the activity or file list. diff --git a/docs/management/cases/setup-cases.asciidoc b/docs/management/cases/setup-cases.asciidoc index a404042bf3f60..fdc4dde72504e 100644 --- a/docs/management/cases/setup-cases.asciidoc +++ b/docs/management/cases/setup-cases.asciidoc @@ -24,7 +24,7 @@ The *{connectors-feature}* feature privilege is required to create, add, delete, and modify case connectors and to send updates to external systems. By default, `All` for the *Cases* feature includes authority to delete cases -and comments unless you customize the sub-feature privileges. +and comments and edit case settings unless you customize the sub-feature privileges. ==== | Give assignee access to cases @@ -33,10 +33,10 @@ a| `All` for the *Cases* feature under *Management*. NOTE: Before a user can be assigned to a case, they must log into {kib} at least once, which creates a user profile. -| Give view-only access for cases | `Read` for the *Cases* feature under *Management*. +| Give view-only access to cases +a| `Read` for the *Cases* feature under *Management*. -| Give access to view and delete cases | `Read` for the *Cases* feature under -*Management* with the deletion sub-feature enabled. +NOTE: By default, `Read` for the *Cases* feature does not include authority to delete cases and comments or edit case settings. You can grant this authority by customizing the sub-feature privileges. | Revoke all access to cases | `None` for the *Cases* feature under *Management*. diff --git a/docs/management/connectors/action-types/servicenow-itom.asciidoc b/docs/management/connectors/action-types/servicenow-itom.asciidoc index ea21cb72248f7..2dc6266745336 100644 --- a/docs/management/connectors/action-types/servicenow-itom.asciidoc +++ b/docs/management/connectors/action-types/servicenow-itom.asciidoc @@ -31,7 +31,7 @@ image::management/connectors/images/servicenow-itom-connector-oauth.png[{sn-itom [[servicenow-itom-connector-configuration]] ==== Connector configuration -{sn-itom} connectors have a name and the following configuration properties: +{sn-itom} connectors have the following configuration properties: Client ID:: The client identifier assigned to your OAuth application. diff --git a/docs/management/connectors/action-types/servicenow-sir.asciidoc b/docs/management/connectors/action-types/servicenow-sir.asciidoc index 30ea222aa4e14..da2b37dc1f558 100644 --- a/docs/management/connectors/action-types/servicenow-sir.asciidoc +++ b/docs/management/connectors/action-types/servicenow-sir.asciidoc @@ -12,18 +12,202 @@ The {sn-sir} connector uses the https://developer.servicenow.com/dev.do#!/reference/api/sandiego/rest/c_ImportSetAPI[import set API] to create {sn} security incidents. You can use the connector for rule actions and cases. +[float] +[[define-servicenow-sir-ui]] +=== Create connectors in {kib} + +You can create connectors in *{stack-manage-app} > {connectors-ui}* +or as needed when you're creating a rule. You must choose whether to use OAuth for authentication. + +[role="screenshot"] +image::management/connectors/images/servicenow-sir-connector-basic.png[{sn-sir} connector using basic auth] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. + +[role="screenshot"] +image::management/connectors/images/servicenow-sir-connector-oauth.png[{sn-sir} connector using OAuth] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. + +[float] +[[servicenow-sir-connector-configuration]] +==== Connector configuration + +{sn-sir} connectors have the following configuration properties: + +Client ID:: +The client ID assigned to your OAuth application. +Client Secret:: +The client secret assigned to your OAuth application. +JWT verifier key ID:: +The key identifier assigned to the JWT verifier map of your OAuth application. +Password:: +The password for HTTP basic authentication. +Private key:: +The RSA private key that you created for use in {sn}. +Private key password:: +The password for the RSA private key. +This value is required if you set a password for your private key. +{sn} instance URL:: +The full {sn} instance URL. +Use OAuth authentication:: +By default, basic authentication is used instead of open authorization (OAuth). +User identifier:: +The identifier to use for OAuth type authentication. +This identifier should be the user field you selected during setup. +For example, if the selected user field is `Email`, the user identifier should be the user's email address. +Username:: +The username for HTTP basic authentication. + +[float] +[[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: + +[role="screenshot"] +image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test] + +{sn-sir} actions have the following configuration properties. + +Additional comments:: +Additional information for the client, such as how to troubleshoot the issue. +Category:: +The category of the incident. +Correlation display:: +A descriptive label of the alert for correlation purposes in {sn}. +Correlation ID:: +Connectors using the same correlation ID will be associated with the same {sn} incident. +This value determines whether a new {sn} incident will be 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} will create 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:: +The details about the incident. +Priority:: +The priority of the incident. +Short description:: +A short description for the incident, used for searching the contents of the knowledge base. +Subcategory:: +The subcategory of the incident. + +[float] +[[servicenow-sir-connector-networking-configuration]] +=== Connector networking configuration + +Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations. + +[float] +[[configuring-servicenow-sir]] +=== Configure {sn-sir} + +{sn} offers free https://developer.servicenow.com/dev.do#!/guides/madrid/now-platform/pdi-guide/obtaining-a-pdi[Personal Developer Instances], which you can use to test incidents. + [float] [[servicenow-sir-connector-prerequisites]] -=== Prerequisites +==== Prerequisites After upgrading from {stack} version 7.15.0 or earlier to version 7.16.0 or later, you must complete the following within your {sn} instance before creating a new {sn-sir} connector or <>: . Install https://store.servicenow.com/sn_appstore_store.do#!/store/application/2f0746801baeb01019ae54e4604bcb0f[Elastic for Security Operations (SecOps)] from the {sn} Store. +. <>. . <>. . <>. . If you use open authorization (OAuth), you must also: .. <>. .. <>. +[float] +[[servicenow-sir-connector-privileges]] +==== Assign cross-scope privileges + +The Elastic for Security Operations app requires specific cross-scope privilege records to run successfully. +In particular, you must have a privilege record for the `Elastic for Security Operations` application with the status set to `Allowed` for each of the following targets: + +|=== +|Target scope|Name|Type|Operation + +|Global +|Glide API: string utilities +|Scriptable +|Execute API + +|Global +|GlideRecord.insert +|Scriptable +|Execute API + +|Global +|GlideRecord.setValue +|Scriptable +|Execute API + +|Global +|GlideRecordSecure.getValue +|Scriptable +|Execute API + +|Global +|RESTAPIRequest +|Scriptable +|Execute API + +|Global +|RESTAPIRequestBody +|Scriptable +|Execute API + +|Global +|ScopedGlideElement +|Scriptable +|Execute API + +|Global +|ScriptableServiceResultBuilder.setBody +|Scriptable +|Execute API + +|Security incident response +|sn_si_incident +|Table +|Read + +|Threat intelligence support common +|sn_ti_m2m_task_observable +|Table +|Create + +|Threat intelligence support common +|sn_ti_m2m_task_observable +|Table +|Read + +|Threat intelligence support common +|sn_ti_observable +|Table +|Create + +|Threat intelligence support common +|sn_ti_observable +|Table +|Read + +|Threat intelligence support common +|sn_ti_observable_type +|Table +|Read +|=== + +To access the cross scope privileges table: + +1. Log into {sn} and set your application scope to Elastic for Security Operations. +2. Click *All* and search for `sys_scope_privilege`. + +For more details, refer to the https://docs.servicenow.com/[{sn} product documentation]. + + [float] [[servicenow-sir-connector-prerequisites-integration-user]] ==== Create a {sn} integration user @@ -93,71 +277,4 @@ To update a deprecated connector: .. Install https://store.servicenow.com/sn_appstore_store.do#!/store/application/2f0746801baeb01019ae54e4604bcb0f[Elastic for Security Operations (SecOps)] from the {sn} Store and complete the <>. .. Enter the URL of your {sn} instance. .. Enter the username and password of your {sn} instance. -. Click *Update*. - -[float] -[[define-servicenow-sir-ui]] -=== Create connectors in {kib} - -You can create connectors in *{stack-manage-app} > {connectors-ui}* -or as needed when you're creating a rule. You must choose whether to use OAuth for authentication. - -[role="screenshot"] -image::management/connectors/images/servicenow-sir-connector-basic.png[{sn-sir} connector using basic auth] - -[role="screenshot"] -image::management/connectors/images/servicenow-sir-connector-oauth.png[{sn-sir} connector using OAuth] - -[float] -[[servicenow-sir-connector-configuration]] -==== Connector configuration - -{sn-sir} connectors have the following configuration properties: - -Name:: The name of the connector. -Is OAuth:: The type of authentication to use. -URL:: {sn} instance URL. -Username:: Username for HTTP Basic authentication. -Password:: Password for HTTP Basic authentication. -User Identifier:: Identifier to use for OAuth type authentication. This identifier should be the *User field* you selected during setup. For example, if the selected *User field* is *Email*, the user identifier should be the user's email address. -Client ID:: The client ID assigned to your OAuth application. -Client Secret:: The client secret assigned to your OAuth application. -JWT Key ID:: The key ID assigned to the JWT verifier map of your OAuth application. -Private Key:: The RSA private key generated during setup. -Private Key Password:: The password for the RSA private key generated during setup, if set. - -[float] -[[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: - -[role="screenshot"] -image::management/connectors/images/servicenow-sir-params-test.png[{sn-sir} params test] - -{sn-sir} actions have the following configuration properties. - -Short description:: A short description for the incident, used for searching the contents of the knowledge base. -Priority:: The priority of the incident. -Category:: The category of the incident. -Subcategory:: The subcategory of the incident. -Correlation ID:: Connectors using the same Correlation ID will be associated with the same {sn} incident. This value determines whether a new {sn} incident will be 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} will create 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. - -Correlation Display:: A descriptive label of the alert for correlation purposes in {sn}. -Description:: The details about the incident. -Additional comments:: Additional information for the client, such as how to troubleshoot the issue. - -[float] -[[servicenow-sir-connector-networking-configuration]] -=== Connector networking configuration - -Use the <> to customize connector networking configurations, such as proxies, certificates, or TLS settings. You can set configurations that apply to all your connectors or use `xpack.actions.customHostSettings` to set per-host configurations. - -[float] -[[configuring-servicenow-sir]] -=== Configure {sn-sir} - -{sn} offers free https://developer.servicenow.com/dev.do#!/guides/madrid/now-platform/pdi-guide/obtaining-a-pdi[Personal Developer Instances], which you can use to test incidents. +. Click *Update*. \ No newline at end of file diff --git a/docs/management/connectors/action-types/servicenow.asciidoc b/docs/management/connectors/action-types/servicenow.asciidoc index db0b9b3183a6f..ab4e18a0ff5b3 100644 --- a/docs/management/connectors/action-types/servicenow.asciidoc +++ b/docs/management/connectors/action-types/servicenow.asciidoc @@ -32,7 +32,7 @@ image::management/connectors/images/servicenow-connector-oauth.png[ServiceNow co [[servicenow-connector-configuration]] ==== Connector configuration -{sn-itsm} connectors have a name and the following configuration properties: +{sn-itsm} connectors have the following configuration properties: Client ID:: The client identifier assigned to your OAuth application. @@ -73,6 +73,8 @@ Additional comments:: Additional information for the client, such as how to troubleshoot the issue. Category:: The category of the incident. +Correlation display:: +A descriptive label of the alert for correlation purposes in {sn}. Correlation ID:: Connectors using the same correlation ID will be associated with the same {sn} incident. This value determines whether a new {sn} incident will be created or an existing one is updated. @@ -83,8 +85,6 @@ The maximum character length for this value is 100 characters. NOTE: Using the default configuration of `{{ruleID}}:{{alert ID}}` ensures that {sn} will create 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. -- -Correlation display:: -A descriptive label of the alert for correlation purposes in {sn}. Description:: The details about the incident. Impact:: @@ -135,34 +135,40 @@ from the {sn} store. ==== Assign cross-scope privileges The Elastic for ITSM app requires specific cross-scope privilege records to run successfully. -In particular, you must have a privilege record for the `Elastic for ITSM` application and source scope with a `global` target scope for each of the following targets: +In particular, you must have a privilege record for the `Elastic for ITSM` application with the status set to `Allowed` for each of the following targets: |=== -|Target name, type|Operation|Status +|Target scope|Name|Type|Operation -|GlideRecord.insert, Scriptable +|Global +|GlideRecord.insert +|Scriptable |Execute API -|Allowed -|GlideRecord.setValue, Scriptable +|Global +|GlideRecord.setValue +|Scriptable |Execute API -|Allowed -|GlideRecordSecure.getValue, Scriptable +|Global +|GlideRecordSecure.getValue +|Scriptable |Execute API -|Allowed -|Incident, Table +|Global +|Incident +|Table |Read -|Allowed -|ScriptableServiceResultBuilder.setBody, Scriptable +|Global +|ScriptableServiceResultBuilder.setBody +|Scriptable |Execute API -|Allowed -|ScopedGlideElement, Scriptable +|Global +|ScopedGlideElement +|Scriptable |Execute API -|Allowed |=== To access the cross scope privileges table: diff --git a/docs/management/connectors/images/servicenow-sir-connector-basic.png b/docs/management/connectors/images/servicenow-sir-connector-basic.png index 95cefce154494..1404526f6418d 100644 Binary files a/docs/management/connectors/images/servicenow-sir-connector-basic.png and b/docs/management/connectors/images/servicenow-sir-connector-basic.png differ diff --git a/docs/management/connectors/images/servicenow-sir-connector-oauth.png b/docs/management/connectors/images/servicenow-sir-connector-oauth.png index 3b02087b5a49a..8cac0f7361890 100644 Binary files a/docs/management/connectors/images/servicenow-sir-connector-oauth.png and b/docs/management/connectors/images/servicenow-sir-connector-oauth.png differ diff --git a/docs/management/maintenance-windows/images/create-maintenance-window-filter.png b/docs/management/maintenance-windows/images/create-maintenance-window-filter.png new file mode 100644 index 0000000000000..23877293e426f Binary files /dev/null and b/docs/management/maintenance-windows/images/create-maintenance-window-filter.png differ diff --git a/docs/management/maintenance-windows/images/create-maintenance-window.png b/docs/management/maintenance-windows/images/create-maintenance-window.png index c6953d4e48693..b48c52ae9448d 100644 Binary files a/docs/management/maintenance-windows/images/create-maintenance-window.png and b/docs/management/maintenance-windows/images/create-maintenance-window.png differ diff --git a/docs/management/maintenance-windows/maintenance-windows.asciidoc b/docs/management/maintenance-windows/maintenance-windows.asciidoc index 9f7ffbae80edd..4bbdfb745022b 100644 --- a/docs/management/maintenance-windows/maintenance-windows.asciidoc +++ b/docs/management/maintenance-windows/maintenance-windows.asciidoc @@ -25,7 +25,7 @@ When the alert recovers, there are no notifications--even if the recovery occurs To use maintenance windows, you must have the appropriate {subscriptions}[subscription] and {kib} feature privileges. - To have full access to maintenance windows, you must have `All` privileges for the *Management > Maintenance Windows* feature. -- To have view-only access to maintenance windows, you must have `Read` privileges for the **Management > Maintenance Windows* feature. +- To have view-only access to maintenance windows, you must have `Read` privileges for the *Management > Maintenance Windows* feature. For more details, refer to <>. @@ -46,6 +46,18 @@ 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 <>. +If you turn on *Filter alerts*, you can use KQL to filter the alerts affected by the maintenance window: + +[role="screenshot"] +image::images/create-maintenance-window-filter.png[The Create Maintenance Window user interface in {kib} with alert filters turned on] +// NOTE: This is an autogenerated screenshot. Do not edit it directly. + +[NOTE] +==== +* You can select only a single category when you turn on filters. +* Some rules are not affected by maintenance window filters because their alerts do not contain requisite data. In particular, <>, <>, {ml-docs}/ml-configuring-alerts.html[{anomaly-jobs} health], and {ref}/transform-alerts.html[transform health] rules are not affected by the filters. +==== + A maintenance window can have any one of the following statuses: - `Upcoming`: It will run at the scheduled date and time. diff --git a/docs/osquery/osquery.asciidoc b/docs/osquery/osquery.asciidoc index 2f6e0657b42af..4f0859ac21b19 100644 --- a/docs/osquery/osquery.asciidoc +++ b/docs/osquery/osquery.asciidoc @@ -42,7 +42,9 @@ then view the results. . Select one or more agents or groups to query. Start typing in the search field, and you'll get suggestions for agents by name, ID, platform, and policy. . Specify the query or pack to run: -** *Query*: Select a saved query or enter a new one in the text box. After you enter the query, you can expand the **Advanced** section to view or set <> included in the results from the live query. Mapping ECS fields is optional. +** *Query*: Select a saved query or enter a new one in the text box. After you enter the query, you can expand the **Advanced** section to set a timeout period for the query, and view or set <> included in the results from the live query (optional). ++ +NOTE: Overwriting the query's default timeout period allows you to support queries that require more time to complete. The default and minimum supported value for the **Timeout** field is `60`. The maximum supported value is `900`. ** *Pack*: Select from available query packs. After you select a pack, all of the queries in the pack are displayed. + TIP: Refer to <> to learn about using and managing Elastic prebuilt packs. @@ -50,7 +52,7 @@ TIP: Refer to <> to learn about using and [role="screenshot"] image::images/enter-query.png[Select saved query dropdown name showing query name and description] -. Click **Submit**. Queries will timeout after 5 minutes if there are no responses. +. Click **Submit**. + TIP: To save a single query for future use, click *Save for later* and define the ID, description, and other <>. @@ -104,8 +106,10 @@ NOTE: When defining pack deployment details, you cannot configure the same polic ** Click *Add query* and then add a saved query or enter a new query. Each query must include a unique query ID and the interval at which it should run. -Optionally, set the minimum Osquery version and platform, +Optionally, set the minimum Osquery version and platform, specify a timeout period, or <>. When you add a saved query to a pack, this adds a copy of the query. A connection is not maintained between saved queries and packs. ++ +NOTE: Overwriting the query's default timeout period allows you to support queries that require more time to complete. The default and minimum supported value for the **Timeout** field is `60`. The maximum supported value is `900`. ** Upload queries from a `.conf` query pack by dragging the pack to the drop zone under the query table. To explore the community packs that Osquery publishes, click *Example packs*. @@ -147,6 +151,8 @@ Once you save a query, you can only edit it from the *Saved queries* tab: * The SQL query (required). Osquery supports multi-line queries. +* A timeout period (optional). Increase the query's default timeout period to support queries that require more time to complete. The default and minimum supported value for the **Timeout** field is `60`. The maximum supported value is `900`. + * The <> to populate when the query is run (optional). These fields are also copied in when you add this query to a pack. * The defaults to set when you add the query to a pack. diff --git a/docs/settings/alert-action-settings.asciidoc b/docs/settings/alert-action-settings.asciidoc index 5130fad9abad4..0c66deac68c0d 100644 --- a/docs/settings/alert-action-settings.asciidoc +++ b/docs/settings/alert-action-settings.asciidoc @@ -581,7 +581,7 @@ Specifies whether to skip writing alerts and scheduling actions if rule processing was cancelled due to a timeout. Default: `true`. This setting can be overridden by individual rule types. -`xpack.alerting.rules.maxScheduledPerMinute` {ess-icon}:: +`xpack.alerting.rules.maxScheduledPerMinute`:: Specifies the maximum number of rules to run per minute. Default: 10000 `xpack.alerting.rules.minimumScheduleInterval.value` {ess-icon}:: diff --git a/docs/settings/fleet-settings.asciidoc b/docs/settings/fleet-settings.asciidoc index a85c4b67063e6..110af39a5cc4c 100644 --- a/docs/settings/fleet-settings.asciidoc +++ b/docs/settings/fleet-settings.asciidoc @@ -24,6 +24,8 @@ See the {fleet-guide}/index.html[{fleet}] docs for more information about {fleet `xpack.fleet.agents.enabled` {ess-icon}:: Set to `true` (default) to enable {fleet}. +`xpack.fleet.isAirGapped`:: +Set to `true` to indicate {fleet} is running in an air-gapped environment. Refer to {fleet-guide}/air-gapped.html[Air-gapped environments] for details. Enabling this flag helps Fleet skip needless requests and improve the user experience for air-gapped environments. [[fleet-data-visualizer-settings]] diff --git a/docs/user/dashboard/create-panels-with-editors.asciidoc b/docs/user/dashboard/create-panels-with-editors.asciidoc index 37fd6f7c07d8d..d0cf77ef8a469 100644 --- a/docs/user/dashboard/create-panels-with-editors.asciidoc +++ b/docs/user/dashboard/create-panels-with-editors.asciidoc @@ -386,6 +386,12 @@ Bucket aggregations group, or bucket, documents based on the aggregation type. T | ✓ | ✓ +| IP prefix +| Use filters +| Use filters +| ✓ +| ✓ + | IP range | Use filters | Use filters diff --git a/docs/user/dashboard/images/lens_primaryMetric.png b/docs/user/dashboard/images/lens_primaryMetric.png new file mode 100644 index 0000000000000..8e0efc1b90882 Binary files /dev/null and b/docs/user/dashboard/images/lens_primaryMetric.png differ diff --git a/docs/user/dashboard/lens.asciidoc b/docs/user/dashboard/lens.asciidoc index 7037f32f7b54d..b3c5c4980e933 100644 --- a/docs/user/dashboard/lens.asciidoc +++ b/docs/user/dashboard/lens.asciidoc @@ -617,3 +617,32 @@ Pagination in a data table is unsupported. To use pagination in data tables, cre ==== Specifying the color for a single data point, such as a single bar or line, is unsupported. ==== + +[discrete] +[[dynamic-metric-coloring]] +.*How does dynamic coloring work for the metric visualization?* +[%collapsible] +==== +In the color palette editor, if you select *Value type: Number* the colors are applied based on the *Primary metric* value. + +The *Primary metric* refers to the large number displayed in each tile. + +[role="screenshot"] +image:images/lens_primaryMetric.png[Illustration of where to find the primary metric in a metric visualization.] + + +If you select *Value type: Percent*, the primary metric values are mapped to a range between 0 and 100 percent. The bounds of the range depend on your configuration. + +The logic is as follows. If there is a Breakdown dimension for multiple visualization tiles: + +* When there is a *Maximum dimension*, the range is from zero to the value of your *Maximum dimension*. + +* When there is no *Maximum dimension*, the range is from the smallest primary metric values to the greatest primary metric values. + +If there is no Breakdown dimension for a single visualization tile: + +* When there is a *Maximum dimension*, the range is from zero to the value of your *Maximum dimension*. + +* When there is no *Maximum dimension*, *Value type: Percent* cannot be selected because there's no way to determine a range. + +==== \ No newline at end of file diff --git a/docs/user/images/alerts-anomaly.png b/docs/user/images/alerts-anomaly.png new file mode 100644 index 0000000000000..f1b45c7d149e2 Binary files /dev/null and b/docs/user/images/alerts-anomaly.png differ diff --git a/docs/user/images/alerts.png b/docs/user/images/alerts.png new file mode 100644 index 0000000000000..640f240947277 Binary files /dev/null and b/docs/user/images/alerts.png differ diff --git a/docs/user/images/allow-spaces.png b/docs/user/images/allow-spaces.png new file mode 100644 index 0000000000000..d5bb293699f81 Binary files /dev/null and b/docs/user/images/allow-spaces.png differ diff --git a/docs/user/images/cases.png b/docs/user/images/cases.png new file mode 100644 index 0000000000000..c2b2a625b13ae Binary files /dev/null and b/docs/user/images/cases.png differ diff --git a/docs/user/images/edit-esql-dashboard.gif b/docs/user/images/edit-esql-dashboard.gif new file mode 100644 index 0000000000000..9bda42dc4b3f7 Binary files /dev/null and b/docs/user/images/edit-esql-dashboard.gif differ diff --git a/docs/user/images/esql-in-app.png b/docs/user/images/esql-in-app.png new file mode 100644 index 0000000000000..9f3bd7e581471 Binary files /dev/null and b/docs/user/images/esql-in-app.png differ diff --git a/docs/user/images/improved-errors.png b/docs/user/images/improved-errors.png new file mode 100644 index 0000000000000..d466c2ea65b23 Binary files /dev/null and b/docs/user/images/improved-errors.png differ diff --git a/docs/user/images/long-field-names.png b/docs/user/images/long-field-names.png new file mode 100644 index 0000000000000..a58033dd64569 Binary files /dev/null and b/docs/user/images/long-field-names.png differ diff --git a/docs/user/images/maintenance-window-filter.png b/docs/user/images/maintenance-window-filter.png new file mode 100644 index 0000000000000..81278212fcc31 Binary files /dev/null and b/docs/user/images/maintenance-window-filter.png differ diff --git a/docs/user/images/maintenance-window.png b/docs/user/images/maintenance-window.png new file mode 100644 index 0000000000000..ff7d335289a0f Binary files /dev/null and b/docs/user/images/maintenance-window.png differ diff --git a/docs/user/images/trained-models-ui.png b/docs/user/images/trained-models-ui.png new file mode 100644 index 0000000000000..eec68f04f805c Binary files /dev/null and b/docs/user/images/trained-models-ui.png differ diff --git a/docs/user/whats-new.asciidoc b/docs/user/whats-new.asciidoc index 5aca50de79675..96fd0cb22662a 100644 --- a/docs/user/whats-new.asciidoc +++ b/docs/user/whats-new.asciidoc @@ -5,242 +5,153 @@ Here are the highlights of what's new and improved in {minor-version}. For detailed information about this release, check the <>. -Previous versions: {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] +Previous versions: {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] -=== Discover - -[discrete] -==== {esql} in Discover - -preview:[] In 8.11 we are introducing link:https://www.elastic.co/guide/en/elasticsearch/reference/master/esql.html[{es} Query Language ({esql})], Elastic’s new piped language for data exploration and investigation. {esql} transforms, enriches, and simplifies your data exploration process. - -[role="screenshot"] -image::images/esql-demo.gif[A short video demo of {esql}] - -Here is what you can expect: - -* *Easy start:* To begin using {esql} in **Discover**, select **Try {esql}** from the data view menu. -* *Efficient and easy query building:* {esql} in Discover offers auto-complete and in-app documentation, making it easy to craft powerful queries right from the query bar. -* *Comprehensive and powerful data exploration:* Conduct ad-hoc data exploration within **Discover**. Create aggregations, transform data, enrich datasets, and more directly from the query builder. Results are presented in a tabular format or as visualizations. It depends on the query you are executing. -* *Contextual visualizations:* When writing {esql} queries in **Discover**, you’ll receive visual representations powered by the **Lens** suggestion engine. Your query’s nature determines the type of visualization you get, such as a metric, histogram, heatmap, and so on. -* *Enrichment:* Use the enrich command to enhance your query dataset with fields from another dataset, complete with in-context suggestions for the selected policy, such as hinting the matching field and enriched columns. -* *In-line visualization editing:* Edit {esql} visualizations directly within **Discover** and dashboards. No need to navigate to **Lens** for quick edits, so you can make changes seamlessly. -* *Dashboard integration:* Save your {esql} visualizations to a dashboard directly from **Discover** once you’re satisfied with the results. -* *Alerting:* Use {esql} for Observability and Security alerts, setting aggregated values as thresholds. Enhance detection accuracy and receive actionable notifications by emphasizing meaningful trends over isolated incidents, reducing false positives. - -{esql} in **Discover** brings efficiency and power to your data investigations, streamlining your path to insights. - -Learn more about {esql}’s capabilities in the link:{ref-bare}/master/esql.html[{es} {esql} documentation]. - - -[role="screenshot"] -image::images/obvs.png[An example of {esql}] - -[role="screenshot"] -image::images/obv-use-case.png[An example using {esql} in an {observability} use case] - [discrete] -=== Dashboard +=== Dashboard [discrete] -==== Lens inline editing in dashboards +==== Edit {esql} in a dashboard -You can now edit a **Lens** visualization without leaving the dashboard instead of navigating back and forth to the **Lens** editor. Open the panel menu and select **Edit visualization**. A flyout will be open in the dashboard where you can perform any edits to your **Lens** panels. Once happy with your edits, click **Apply and close**. This new editing experience is more convenient and will save you time since the dashboard will not need to reload when saving your changes. +We are introducing editing of an {esql} query on a dashboard and allows the users to select among different chart suggestions. This is quite powerful since users don't need to go back to Discover to edit the query and recreate the chart, they can simply adjust the query right there on a dashboard. [role="screenshot"] -image::images/lens-inline-editing.gif[An example of inline editing in Lens] +image::images/edit-esql-dashboard.gif[A short video demo of how to edit {esql} in a dashboard] [discrete] -==== Links panel - -You can now easily navigate from one dashboard to another using the links panel. Better organize your dashboards and make them more performant by chunking them in multiple dashboards with fewer visualizations and linking them together. You can carry over your filters, query, and time range when navigating to other related dashboards. Display your links horizontally or vertically as it better suits your dashboard layout. You can also use the links panel to include external links in your dashboards, such as to your wiki page or other applications. Decide whether you want to open the links in the same browser tab or in a new one. +==== Improved ES|QL in-app documentation search +Many users open the {esql} editor’s documentation popover to familiarize themselves with the commands and find examples. Our search input was searching only on the titles of the commands/functions and not the description of each. As a result users were failing to find what they wanted. For example, if they searched for IP then CIDR_MATCH would not appear, but only TO_IP. This change helps users learn {esql} faster by improving the search. [role="screenshot"] -image::images/links-panel.gif[An example of the new links panel] - -[role="screenshot"] -image::images/edit-links-panel.png[An example of the edit links panel flyout] - -[role="screenshot"] -image::images/edit-links.png[An example of how to edit links using the panel flyout] +image::images/esql-in-app.png[A screenshot of the {esql} in app documentation] [discrete] -==== Color mapping for enhanced data visualization - -Color is a fundamental visual element, alongside position and shape, that plays a crucial role in conveying information effectively. +==== Improved error messages for {ccs} +Customers querying data from multiple clusters link:{ref}/modules-cross-cluster-search.html[({ccs-init} queries)] will get more information on why their search failed for each of the visualizations in a dashboard as well as in the Discover application. [role="screenshot"] -image::images/color-mapping.png[An example of the new color mapping feature] - -Here’s what our new color mapping feature offers: - -* *Effortless categorization:* Easily assign one or more field categories to specific colors. This makes it simpler than ever to organize and understand your data. -* *Guided color selection:* Our intuitive color chooser provides you with predefined palettes that ensure your charts not only look great, but also align seamlessly with different {kib} themes. -* *Enhanced color palettes:* We’ve reintroduced a clear concept of color palettes, making it easier for you to select and apply gradients, improving the overall aesthetics of your visualizations. - -Whether you’re working with cartesian, partition, or tag clouds charts, these enhancements are designed to help you make the most of your data. With this feature, you can expect an improved ability to categorize, differentiate, and emphasize data points on your charts, ultimately leading to better insights and more visually appealing dashboards. +image::images/improved-errors.png[A screenshot of an improved error message, width=50%] [discrete] -==== {ccs-cap} ({ccs-init}) query inspector +=== Discover -Customers querying data from multiple clusters link:{ref}/modules-cross-cluster-search.html[({ccs-init} queries)] will get more information about each of the cluster's responses. For each of the visualizations in a dashboard as well as in **Discover**, you can look at response times per cluster and shard failures. This is especially important when one or more clusters are not able to provide all the data, so you know that you are looking at partial results and why they fail. +[discrete] +==== Improved long field names handling in {kib} +Long field names are very normal in Observability and Security datasets. That’s why we adapted multiple elements in Discover, Dashboards, Maps, and Lens such as field selectors, table headers, filter pills, and chart tooltips amongst others to handle long field names. For example, you will notice it when you select a field to set some filters or when you mouse over a chart. [role="screenshot"] -image::images/ccs-query-inspector.png[An example of the new {ccs} query inspector, width=50%] +image::images/long-field-names.png[A screenshot of the improved long field name handling in {kib}] [discrete] -==== Individual annotation editing from the library - -We've introduced full annotation group editing in the **Visualize Library**. Now, you can easily edit shared annotation groups without leaving Lens. No more searching for consuming visualizations. +==== Improved search for field names by handling spaces like wildcards +To improve data exploration, we improved the search within the field list by allowing users to do a more flexible search in the fields sidebar with terms containing spaces. [role="screenshot"] -image::images/annotation-editing.png[An example of annotation editing] +image::images/allow-spaces.png[A screenshot of the search within the field list allowing spaces, width=70%] [discrete] === Machine Learning - -[discrete] -==== ELSER is improved and is now generally available - -In 8.8, we introduced Elastic Learned Sparse Encoder in technical preview. ELSER is Elastic’s text expansion language model for AI search. It offers superior relevance out of the box, without the need for retraining on in-domain data or any other ML or MLOps effort. Deploy it with a couple of clicks from Elastic’s UI and start leveraging the power of AI with your search. -In 8.11, we're releasing a generally available second version. ELSER model-2 comes in two versions: - -* The optimized model, which runs on the linux-x86_64 platform -* The cross-platform model +[discrete] +==== Unified inference API now integrates OpenAI and HuggingFace +In 8.11 we introduced a unified inference API that abstracts away the complexity of performing inference on different models for different tasks. -Both ELSER model-2 versions, platform-optimized and cross-platform, show improved relevance compared to the original ELSER release, as measured against the BEIR benchmarks. Importantly, the optimized version also shows significantly improved performance (reduced inference latency). The {ecloud} supports the optimized version and so {ecloud} users will benefit from the materially improved performance of the optimized ELSER model-2. +We released an MVP iteration of this framework in technical preview which initially supported ELSER in an Elastic deployment and we hinted that in future releases, the inference API will support both internal and external models and will integrate with the LLM ecosystem. -[role="screenshot"] -image::images/elser-model-2.png[An example of ELSER model 2, width=60%] +And so in 8.12 Elastic’s Inference API is extended to integrate with external models to perform AI search inference using: -NOTE: The original version of ELSER (the model available prior to 8.11) will remain in technical preview. +* OpenAI embeddings +* HuggingFace embeddings and +* ELSER on HuggingFace -[discrete] -==== Inference APIs +AI search with embeddings achieves superior contextual relevance and captures user intent. Inference using these new capabilities involves external calls to the corresponding endpoints on OpenAI and HuggingFace. The power of the inference API lies in its simple, unified syntax that abstracts away the underlying complexity of using different internal and external models for different tasks. -preview:[] We are working to introduce a unified inference API that abstracts away the complexity of performing inference on different models that are trained for different tasks. The API introduces a simple, intuitive syntax of the form: +Performing inference on the newly supported models and services is as simple as a call with the simple syntax introduced in 8.11: -[source,bash] +[source, bash] ---- -POST /_inference// +PUT /_inference// ---- -In 8.11, we're'releasing a contained first link:{ref}/inference-apis.html[MVP iteration of this framework], which initially only supports ELSER. This link:{ref}/semantic-search-elser.html#inference-ingest-pipeline[greatly simplifies the syntax] for creating an inference pipeline. +Concretely, this is how this syntax shapes up for inference with OpenAI embeddings, showcasing the power of Elastic’s unified inference API: -More importantly, in the future the new inference API will support both internal and external models and will integrate with the LLM ecosystem for our users to have the most powerful AI effortlessly and seamlessly at their fingertips, through a unified, self-explanatory API. - -[discrete] -==== AIOps: Log rate analysis supports text fields - -preview:[] Continuing enhancing log analysis capabilities with smart AIOps tools for drastically shorter mean time to repair. We now support detection of log rate changes that are due to text fields, for example the common **message** log field. Previously log rate change was limited to detecting spikes and dips caused by keyword fields. By adding text fields, we've incorporated pattern analysis into log rate analysis. That has significantly reduced the time it takes to detect and diagnose events that used to go unnoticed for periods of time. - -[role="screenshot"] -image::images/text-field-support.png[An example of log rate analysis supporting text fields] +[source, bash] +---- +PUT _inference/text_embedding/openai_embeddings +---- +For a detailed example, see link:{ref}/semantic-search-inference.html[this tutorial]. Bear in mind that you will need an OpenAI account and the corresponding API key, as well as to choose the specific OpenAI embeddings that you want to use. -[discrete] -==== Data drift workflows - -preview:[] In 8.10, we introduced the **Data comparison** view to help you detect data drift. In 8.11, we have renamed it to **Data drift** and we have enhanced it to include workflows that help you visualize changes in the model input data and detect potential model performance degradation over time. +HuggingFace enables access to many open source models while also providing granular control over how the models are deployed. Tailor the deployment environment to your needs by configuring the number of replicas and whether to run the model on a CPU or GPU. -[role="screenshot"] -image::images/data-drift.png[An example of data drift workflows] +We will continue enhancing Elastic’s inference API with more capabilities and support for more models and tasks for our users to have the most powerful AI effortlessly and seamlessly. [discrete] -==== Improvements in anomaly detection embeddability and data frame analytics pipelines +==== First-class support for E5 multilingual embeddings +ELSER is Elastic’s text expansion language model for AI search in English. It offers superior relevance out of the box, without the need for retraining on in-domain data. ELSER is the AI search model of choice for the English language. ELSER v2 is Generally Available as of 8.11. -We have improved the UX for attaching anomaly swim lanes and anomaly charts to dashboards. It is now more friendly and consistent with the same functionality from Lens. In addition, you can now attach these ML charts to new dashboards (previously this was only able to be done for existing ones). - -In **Data Frame Analytics**, we previously added the ability to link directly to **Discover** and **Dashboards** from the results data grid filtering for the row’s field/values for all visible columns. For improved usability, you can now do this during the job creation as well. We have also made UX improvements for the deployment of trained models from Data Frame Analytics jobs, including an option to reindex your data at the end of the ingest pipeline creation. +For AI search in languages other than English, you can now use E5 multilingual embeddings straight from the Trained Models UI. Like ELSER, E5 has two versions: an Intel-optimized one and a cross-platform one (which runs on any hardware). The Model Management > Trained Models UI shows you which version of E5 is recommended to deploy based on your cluster’s hardware (also see the next section for the redesigned Trained Models UI). The supported model version of E5 is `multilingual-e5-small`. For more details, see our link:{ml-docs}/ml-nlp-e5.html[documentation]. Note that E5 is used under the MIT license. [discrete] -=== ResponseOps - -[discrete] -==== New {esql} rule type - -A new {esql} alerting rule type is now available under the existing {es} rule type. This rule type brings all the new functionalities that are available within the new and powerful language, {esql}, to {kib} Alerting to allow and unlock new alerting use cases. +==== A redesigned trained models UI that brings together our AI search capabilities +In 8.12, we have redesigned the way you can add trained models to your deployment through the Trained Models UI for better guidance and usability. -With the new type, users will be able to generate a single alert based on defined {esql} query and preview the query result before saving the rule. When the query returns an empty result no alerts will be generated. +The flyout to add a trained model includes a tab for ELSER and E5 which can be deployed with one click. The UI also guides you as to the recommended version of each model (Intel-optimized or cross-platform), depending on your underlying hardware. A second tab guides you through deploying any other model on Elastic using the Eland Python client. [role="screenshot"] -image::images/esql-rule-type.gif[An example of creating a rule type using {esql}] +image::images/trained-models-ui.png[A screenshot of the redesigned trained models UI] [discrete] -==== {kib} cases custom field - -A new functionality is now available in {kib} cases. Users will be able to add custom fields to the case structure, so they can use it for better classification and case enrichment. As a first step, those fields will be available in the case view only. In the next step, we’re planning to have more field types, dedicated privileges, support filters, and search capabilities in the case table. - -[role="screenshot"] -image::images/custom-field.gif[An example of creating a custom case field in {kib}] +==== AIOps: Log Rate Analysis is GA +Log Rate Analysis helps you investigate significant increases or decreases of your log rates fast and easy. It helps you identify the reasons behind these changes. Just click on a spike or dip and it will show you the fields (or combinations of fields) that contribute to these changes and, if it helps, continue your investigation by inspecting your selected field in Discover. We consistently enhanced Log Rate Analysis during the past few releases to support both spikes and dips analysis, support for text fields by leveraging Log Pattern Analysis, integration with Discover and more. In 8.12 we added the ability to easily create a categorization anomaly detection job from the pattern analysis flyout in Discover and importantly Log Rate Analysis becomes GA. [discrete] -==== Supporting multi levels of term aggregations in {es} rule type - -The existing {es} alerting rule is now supported by multiple selection when grouping by alert fields, which allows you to define multiple layers of term aggregations. +==== Alerts in Anomaly Explorer +In 8.12 we have enhanced the Anomaly Explorer UI to include insights about alerts generated by rules that use your anomaly detection jobs. [role="screenshot"] -image::images/term-aggs.png[An example of creating multiple layers of term aggregations] +image::images/alerts-anomaly.png[A screenshot of the anomaly explorer UI] -[discrete] -==== Slack connector - allow List - -The Slack connector supports a new allow list, so customers will be able to manage the available Slack channels within the alert actions. +These insights include: -[discrete] -=== {observability} - -[discrete] -==== {es} alerting rule now available in {observability} - -The {es} alerting rule is now available in {observability}. Before this update, {observability} customers who leverage the {es} rule were required to move between **{stack-manage-app}** and **{observability}** to manage their alerts. -To manage the {observability} roles properly, we added a new field to determine which role can maintain the created rule and its generated alerts. +* a line chart of the alerts count and their correlation with the anomalies detected, +* an alert context menu when an anomaly swimlane cell is selected, +* a summary section including the alert duration, start and recovery time and more information and a +* Details tab from which the user can select to open an alert’s detail page and attach an alert to a new or existing case. [role="screenshot"] -image::images/alerting-rule.png[An example of creating an altering rule in {observability}] +image::images/alerts.png[A screenshot of details of the alerts] [discrete] -=== Global Experience +=== ResponseOps [discrete] -==== Create and manage {esql} enrichment index policies +==== Maintenance window filters -In support of our new {esql} capabilities, we have added link:{ref}/ingest-enriching-data.html[enrich policies] to our **Index Management** experience. Users can now create their enrichment policies right from here and get started using it right away. Once configured, all enrich policies are available in the **Enrich Policies** tab. - -Example of an ES|QL Query using an enrich policy with enrich: +In 8.12 you can add KQL filters to your <> to further refine their scope: [role="screenshot"] -image::images/esql-enrich.png[An example of an {esql} query using an enrich policy] - -Example of the enrich policies shown in the UI: +image::images/maintenance-window-filter.png[A screenshot of the create maintenance window UI] -[role="screenshot"] -image::images/enrich-ui.png[An example of where to add an enrich policy in the UI] +[discrete] +==== Case improvements +The enhanced case view is now supported by any field filter and any change to the view is saved to local cache to ensure your data won't be lost. [role="screenshot"] -image::images/enrich-index-management.png[An example of where an enrich policy lives in the UI] - - -[discrete] -==== Start Discover {esql} from global search +image::images/cases.png[A screenshot of the enhanced case view] -**Discover** searches are powered by KQL by default. You can easily switch to {esql} mode within **Discover** and search your data with this new query language. You can also access {esql} in **Discover** from the global search bar within Elastic. With just a few keystrokes, simply type in “ESQL” and you can access **Discover** with {esql} enabled for you. +There is also a new {kib} <> that enables you to customize access to case settings. -[role="screenshot"] -image::images/start-esql-in-discover.gif[An example of using ES|QL in Discover] +If you <> to cases, there is a new option to copy the file hash to your clipboard. +File hashes are crucial for incident investigation and for verification of file integrity. +The supported hash functions for case files are MD5, SHA-1, and SHA-256. [discrete] -==== Access {es} connection details +==== Connector improvements -You can now view your {es} endpoint, link:https://www.elastic.co/guide/en/cloud/current/ec-cloud-id.html[Cloud ID], and even manage your API keys from many areas in Elastic such as integrations. You can also access the connection details on any page in Elastic using the help menu from the header bar. +PagerDuty alert action is now supported by 2 new fields `links` and `custom_details`. +ServiceNow ITSM alert action allows users to define incident resolution when alert is recovered to ensure bi-directional sync between the Elastic Alerts and ServiceNow Incidents. -[role="screenshot"] -image::images/endpoints.png[An example of where to find the endpoints in the UI, width=40%] -[discrete] -==== AWS CloudFormation template updates -When subscribing to Elastic using the link:https://aws.amazon.com/marketplace/pp/prodview-voru33wi6xs7k[AWS Marketplace], users have the option to quickly get set up with an AWS CloudFormation Template. This step allows you to create an Elastic deployment in the AWS region of your choice. We’ve updated the AWS CloudFormation Template with bug fixes and stability improvements to better help you get started. \ No newline at end of file diff --git a/examples/discover_customization_examples/public/plugin.tsx b/examples/discover_customization_examples/public/plugin.tsx index 9368c943532a4..b66559b020d7a 100644 --- a/examples/discover_customization_examples/public/plugin.tsx +++ b/examples/discover_customization_examples/public/plugin.tsx @@ -12,6 +12,7 @@ import { EuiFlexItem, EuiPopover, EuiWrappingPopover, + IconType, } from '@elastic/eui'; import { AppNavLinkStatus, @@ -401,6 +402,28 @@ export class DiscoverCustomizationExamplesPlugin implements Plugin { }, }); + customizations.set({ + id: 'flyout', + size: '60%', + title: 'Example custom flyout', + actions: { + getActionItems: () => + Array.from({ length: 5 }, (_, i) => { + const index = i + 1; + return { + id: `action-item-${index}`, + enabled: true, + label: `Action ${index}`, + iconType: ['faceHappy', 'faceNeutral', 'faceSad', 'infinity', 'bell'].at( + i + ) as IconType, + dataTestSubj: `customActionItem${index}`, + onClick: () => alert(index), + }; + }), + }, + }); + return () => { // eslint-disable-next-line no-console console.log('Cleaning up Logs explorer customizations'); diff --git a/examples/expressions_explorer/public/editor/expression_editor.tsx b/examples/expressions_explorer/public/editor/expression_editor.tsx index c940a21fada27..998a9e486ba19 100644 --- a/examples/expressions_explorer/public/editor/expression_editor.tsx +++ b/examples/expressions_explorer/public/editor/expression_editor.tsx @@ -7,7 +7,7 @@ */ import React from 'react'; -import { CodeEditor } from '@kbn/kibana-react-plugin/public'; +import { CodeEditor } from '@kbn/code-editor'; interface Props { value: string; diff --git a/examples/expressions_explorer/tsconfig.json b/examples/expressions_explorer/tsconfig.json index 717a797173597..b75817c68be7c 100644 --- a/examples/expressions_explorer/tsconfig.json +++ b/examples/expressions_explorer/tsconfig.json @@ -22,5 +22,6 @@ "@kbn/i18n", "@kbn/i18n-react", "@kbn/core-ui-settings-browser", + "@kbn/code-editor", ] } diff --git a/examples/field_formats_example/common/example_currency_format.ts b/examples/field_formats_example/common/example_currency_format.ts index 9134a4cf5f926..968bb0febb556 100644 --- a/examples/field_formats_example/common/example_currency_format.ts +++ b/examples/field_formats_example/common/example_currency_format.ts @@ -34,6 +34,7 @@ export class ExampleCurrencyFormat extends FieldFormat { return new Intl.NumberFormat(undefined, { style: 'currency', currency: this.param('currency'), + currencyDisplay: 'narrowSymbol', }).format(val); }; } diff --git a/examples/portable_dashboards_example/kibana.jsonc b/examples/portable_dashboards_example/kibana.jsonc index e4016f2b1c01e..d6fd1a82e1df5 100644 --- a/examples/portable_dashboards_example/kibana.jsonc +++ b/examples/portable_dashboards_example/kibana.jsonc @@ -16,7 +16,6 @@ "dashboard", "embeddable", "navigation", - "savedObjects", "unifiedSearch", "developerExamples", "embeddableExamples" diff --git a/examples/ui_action_examples/public/plugin.ts b/examples/ui_action_examples/public/plugin.ts index a680e3c94b44f..8b740b556cacc 100644 --- a/examples/ui_action_examples/public/plugin.ts +++ b/examples/ui_action_examples/public/plugin.ts @@ -33,7 +33,6 @@ export class UiActionExamplesPlugin openModal: (await core.getStartServices())[0].overlays.openModal, })); - uiActions.registerAction(helloWorldAction); uiActions.addTriggerAction(helloWorldTrigger.id, helloWorldAction); } diff --git a/examples/ui_actions_explorer/public/app.tsx b/examples/ui_actions_explorer/public/app.tsx index e267279296324..31ac9c3c29ed9 100644 --- a/examples/ui_actions_explorer/public/app.tsx +++ b/examples/ui_actions_explorer/public/app.tsx @@ -6,104 +6,50 @@ * Side Public License, v 1. */ -import React, { useState } from 'react'; +import React from 'react'; import ReactDOM from 'react-dom'; import { EuiPage, - EuiButton, EuiPageBody, EuiPageTemplate, EuiPageSection, EuiSpacer, - EuiText, - EuiFieldText, - EuiCallOut, EuiPageHeader, - EuiModalBody, } from '@elastic/eui'; -import { toMountPoint } from '@kbn/kibana-react-plugin/public'; -import { UiActionsStart, createAction } from '@kbn/ui-actions-plugin/public'; +import { UiActionsStart } from '@kbn/ui-actions-plugin/public'; import { AppMountParameters, OverlayStart } from '@kbn/core/public'; -import { HELLO_WORLD_TRIGGER_ID, ACTION_HELLO_WORLD } from '@kbn/ui-actions-examples-plugin/public'; import { TriggerContextExample } from './trigger_context_example'; import { ContextMenuExamples } from './context_menu_examples'; +import { Overview } from './overview'; +import { HelloWorldExample } from './hello_world_example'; interface Props { - uiActionsApi: UiActionsStart; + uiActionsStartService: UiActionsStart; openModal: OverlayStart['openModal']; } -const ActionsExplorer = ({ uiActionsApi, openModal }: Props) => { - const [name, setName] = useState('Waldo'); - const [confirmationText, setConfirmationText] = useState(''); +const ActionsExplorer = ({ uiActionsStartService, openModal }: Props) => { return ( - + - -

- By default there is a single action attached to the `HELLO_WORLD_TRIGGER`. Clicking - this button will cause it to be executed immediately. -

-
- uiActionsApi.executeTriggerActions(HELLO_WORLD_TRIGGER_ID, {})} - > - Say hello world! - + - -

- Lets dynamically add new actions to this trigger. After you click this button, click - the above button again. This time it should offer you multiple options to choose - from. Using the UI Action and Trigger API makes your plugin extensible by other - plugins. Any actions attached to the `HELLO_WORLD_TRIGGER_ID` will show up here! -

- setName(e.target.value)} /> - { - const dynamicAction = createAction({ - id: `${ACTION_HELLO_WORLD}-${name}`, - type: ACTION_HELLO_WORLD, - getDisplayName: () => `Say hello to ${name}`, - execute: async () => { - const overlay = openModal( - toMountPoint( - - - {`Hello ${name}`} - {' '} - overlay.close()}> - Close - - - ) - ); - }, - }); - uiActionsApi.addTriggerAction(HELLO_WORLD_TRIGGER_ID, dynamicAction); - setConfirmationText( - `You've successfully added a new action: ${dynamicAction.getDisplayName({ - trigger: uiActionsApi.getTrigger(HELLO_WORLD_TRIGGER_ID), - })}. Refresh the page to reset state. It's up to the user of the system to persist state like this.` - ); - }} - > - Say hello to me! - - {confirmationText !== '' ? {confirmationText} : undefined} -
+ + + - + diff --git a/examples/ui_actions_explorer/public/hello_world_example.tsx b/examples/ui_actions_explorer/public/hello_world_example.tsx new file mode 100644 index 0000000000000..14fa8cae32606 --- /dev/null +++ b/examples/ui_actions_explorer/public/hello_world_example.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, { useState } from 'react'; + +import { EuiButton, EuiSpacer, EuiText, EuiModalBody, EuiLink, EuiSwitch } from '@elastic/eui'; +import { toMountPoint } from '@kbn/kibana-react-plugin/public'; +import { UiActionsStart, createAction } from '@kbn/ui-actions-plugin/public'; +import { OverlayStart } from '@kbn/core/public'; +import { HELLO_WORLD_TRIGGER_ID, ACTION_HELLO_WORLD } from '@kbn/ui-actions-examples-plugin/public'; + +const DYNAMIC_ACTION_ID = `${ACTION_HELLO_WORLD}-Waldo`; + +interface Props { + uiActionsStartService: UiActionsStart; + openModal: OverlayStart['openModal']; +} + +export const HelloWorldExample = ({ uiActionsStartService, openModal }: Props) => { + const [isChecked, setIsChecked] = useState(false); + + const actionsMessage = isChecked ? '2 actions attached' : '1 action attached'; + + return ( + <> + +

Hello world example

+

+ The{' '} + + ui_action_example plugin + {' '} + registers the HELLO_WORLD_TRIGGER_ID trigger and attaches the{' '} + ACTION_HELLO_WORLD action to the trigger. The ACTION_HELLO_WORLD opens a + modal when executed. Fire the "Hello world" event by clicking the button below. +

+
+ uiActionsStartService.getTrigger(HELLO_WORLD_TRIGGER_ID).exec({})} + > + Click me to fire "Hello world" event ({actionsMessage}) + + + + + +

+ You can dynamically add a new action to a trigger. Click the switch below to attach a + second action to HELLO_WORLD_TRIGGER_ID trigger. What do you think will happen + when you click the button and the trigger has multiple actions? +

+ { + setIsChecked(e.target.checked); + if (e.target.checked) { + const dynamicAction = createAction({ + id: DYNAMIC_ACTION_ID, + type: ACTION_HELLO_WORLD, + getDisplayName: () => 'Say hello to Waldo', + execute: async () => { + const overlay = openModal( + toMountPoint( + + Hello Waldo{' '} + overlay.close()}> + Close + + + ) + ); + }, + }); + uiActionsStartService.addTriggerAction(HELLO_WORLD_TRIGGER_ID, dynamicAction); + } else { + uiActionsStartService.detachAction(HELLO_WORLD_TRIGGER_ID, DYNAMIC_ACTION_ID); + } + }} + /> +
+ + ); +}; diff --git a/examples/ui_actions_explorer/public/overview.tsx b/examples/ui_actions_explorer/public/overview.tsx new file mode 100644 index 0000000000000..6b5014111cbdf --- /dev/null +++ b/examples/ui_actions_explorer/public/overview.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 from 'react'; + +import { EuiText, EuiLink } from '@elastic/eui'; + +export const Overview = () => { + return ( + +

Overview

+

+ Actions and triggers are an event system abstraction that decouples firing an event and + responding to an event. +

+ Key concepts: +
    +
  • + Trigger is an id that represents an event type, for example + PANEL_CLICK. +
  • +
  • + Action is a{' '} + + class + {' '} + that responds to an event. Multiple actions can be registered to an event type. Actions + can respond to multiple event types. +
  • +
  • + Context is runtime state passed between an event and the responder of an + event. +
  • +
+

+ The purpose for the event system abstraction is to make event handling extensible, allowing + plugins to register their own event types and responses and register responses to existing + event types. +

+

+ Use triggers to make your plugin extensible. For example, your plugin could register a + trigger. Then, other plugins can extend your plugin by registering new actions for the + trigger. Finally, when the trigger is fired, all attached actions are available. +

+
+ ); +}; diff --git a/examples/ui_actions_explorer/public/plugin.tsx b/examples/ui_actions_explorer/public/plugin.tsx index 045ae2f383ee9..369c827f3af97 100644 --- a/examples/ui_actions_explorer/public/plugin.tsx +++ b/examples/ui_actions_explorer/public/plugin.tsx @@ -69,7 +69,7 @@ export class UiActionsExplorerPlugin implements Plugin/packages/analytics/shippers/gainsight'], -}; diff --git a/packages/analytics/shippers/gainsight/kibana.jsonc b/packages/analytics/shippers/gainsight/kibana.jsonc deleted file mode 100644 index 3731f34d34ad1..0000000000000 --- a/packages/analytics/shippers/gainsight/kibana.jsonc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "type": "shared-browser", - "id": "@kbn/analytics-shippers-gainsight", - "owner": "@elastic/kibana-core" -} diff --git a/packages/analytics/shippers/gainsight/package.json b/packages/analytics/shippers/gainsight/package.json deleted file mode 100644 index 8b68459c29bfe..0000000000000 --- a/packages/analytics/shippers/gainsight/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "@kbn/analytics-shippers-gainsight", - "private": true, - "version": "1.0.0", - "author": "Kibana Core", - "license": "SSPL-1.0 OR Elastic License 2.0" -} \ No newline at end of file diff --git a/packages/analytics/shippers/gainsight/src/gainsight_shipper.test.mocks.ts b/packages/analytics/shippers/gainsight/src/gainsight_shipper.test.mocks.ts deleted file mode 100644 index 8e5f16e320c8c..0000000000000 --- a/packages/analytics/shippers/gainsight/src/gainsight_shipper.test.mocks.ts +++ /dev/null @@ -1,18 +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 type { GainsightApi } from './types'; - -export const gainsightApiMock: GainsightApi = jest.fn(); -gainsightApiMock.init = true; - -jest.doMock('./load_snippet', () => { - return { - loadSnippet: () => gainsightApiMock, - }; -}); diff --git a/packages/analytics/shippers/gainsight/src/gainsight_shipper.test.ts b/packages/analytics/shippers/gainsight/src/gainsight_shipper.test.ts deleted file mode 100644 index 9d646203dff1e..0000000000000 --- a/packages/analytics/shippers/gainsight/src/gainsight_shipper.test.ts +++ /dev/null @@ -1,102 +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 { loggerMock } from '@kbn/logging-mocks'; -import { gainsightApiMock } from './gainsight_shipper.test.mocks'; -import { GainsightShipper } from './gainsight_shipper'; - -describe('gainsightShipper', () => { - let gainsightShipper: GainsightShipper; - - beforeEach(() => { - jest.resetAllMocks(); - gainsightShipper = new GainsightShipper( - { - gainsightOrgId: 'test-org-id', - }, - { - logger: loggerMock.create(), - sendTo: 'staging', - isDev: true, - } - ); - }); - - describe('extendContext', () => { - describe('identify', () => { - test('calls `identify` when the clusterName is provided', () => { - const userId = 'test-user-id'; - const clusterName = '123654'; - gainsightShipper.extendContext({ userId, cluster_name: clusterName }); - expect(gainsightApiMock).toHaveBeenCalledWith('identify', { - id: clusterName, - userType: 'deployment', - }); - }); - - test('calls `identify` again only if the clusterName changes', () => { - const userId = 'test-user-id'; - const clusterName = '123654'; - gainsightShipper.extendContext({ userId, cluster_name: clusterName }); - expect(gainsightApiMock).toHaveBeenCalledTimes(2); - expect(gainsightApiMock).toHaveBeenCalledWith('identify', { - id: clusterName, - userType: 'deployment', - }); - expect(gainsightApiMock).toHaveBeenCalledWith('set', 'globalContext', { - kibanaUserId: userId, - }); - - gainsightShipper.extendContext({ userId, cluster_name: clusterName }); - expect(gainsightApiMock).toHaveBeenCalledTimes(3); - - gainsightShipper.extendContext({ userId, cluster_name: `${clusterName}-1` }); - expect(gainsightApiMock).toHaveBeenCalledTimes(5); // called again because the user changed - }); - }); - }); - - describe('optIn', () => { - test('should call consent true and restart when isOptIn: true', () => { - gainsightShipper.optIn(true); - expect(gainsightApiMock).toHaveBeenCalledWith('config', 'enableTag', true); - }); - - test('should call consent false and shutdown when isOptIn: false', () => { - gainsightShipper.optIn(false); - expect(gainsightApiMock).toHaveBeenCalledWith('config', 'enableTag', false); - }); - }); - - describe('reportEvents', () => { - test('calls the API once per event in the array with the properties transformed', () => { - gainsightShipper.reportEvents([ - { - event_type: 'test-event-1', - timestamp: '2020-01-01T00:00:00.000Z', - properties: { test: 'test-1' }, - context: { pageName: 'test-page-1' }, - }, - { - event_type: 'test-event-2', - timestamp: '2020-01-01T00:00:00.000Z', - properties: { other_property: 'test-2' }, - context: { pageName: 'test-page-1' }, - }, - ]); - - expect(gainsightApiMock).toHaveBeenCalledTimes(2); - expect(gainsightApiMock).toHaveBeenCalledWith('track', 'test-event-1', { - test: 'test-1', - }); - expect(gainsightApiMock).toHaveBeenCalledWith('track', 'test-event-2', { - other_property: 'test-2', - }); - }); - }); -}); diff --git a/packages/analytics/shippers/gainsight/src/gainsight_shipper.ts b/packages/analytics/shippers/gainsight/src/gainsight_shipper.ts deleted file mode 100644 index 157cfaee22f0c..0000000000000 --- a/packages/analytics/shippers/gainsight/src/gainsight_shipper.ts +++ /dev/null @@ -1,109 +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 type { - AnalyticsClientInitContext, - EventContext, - Event, - IShipper, -} from '@kbn/analytics-client'; -import type { GainsightApi } from './types'; -import type { GainsightSnippetConfig } from './load_snippet'; -import { loadSnippet } from './load_snippet'; - -/** - * gainsight shipper. - */ -export class GainsightShipper implements IShipper { - /** Shipper's unique name */ - public static shipperName = 'Gainsight'; - private lastClusterName: string | undefined; - private readonly gainsightApi: GainsightApi; - - /** - * Creates a new instance of the gainsightShipper. - * @param config {@link GainsightSnippetConfig} - * @param initContext {@link AnalyticsClientInitContext} - */ - constructor( - config: GainsightSnippetConfig, - private readonly initContext: AnalyticsClientInitContext - ) { - const { ...snippetConfig } = config; - this.gainsightApi = loadSnippet(snippetConfig); - } - - /** - * Calls track or set on the fields provided in the newContext. - * @param newContext The full new context to set {@link EventContext} - */ - public extendContext(newContext: EventContext): void { - this.initContext.logger.debug(`Received context ${JSON.stringify(newContext)}`); - - // gainsight requires different APIs for different type of contexts. - const { userId, cluster_name: clusterName } = newContext; - - this.gainsightApi('set', 'globalContext', { - kibanaUserId: userId, - }); - - if (clusterName && clusterName !== this.lastClusterName) { - this.initContext.logger.debug(`Calling identify with userId ${userId}`); - // We need to call the API for every new userId (restarting the session). - this.gainsightApi('identify', { - id: clusterName, - userType: 'deployment', - }); - this.lastClusterName = clusterName; - } else { - this.initContext.logger.debug( - `Identify has already been called with ${userId} and ${clusterName}` - ); - } - } - - /** - * Stops/restarts the shipping mechanism based on the value of isOptedIn - * @param isOptedIn `true` for resume sending events. `false` to stop. - */ - public optIn(isOptedIn: boolean): void { - this.initContext.logger.debug(`Setting gainsight to optIn ${isOptedIn}`); - - if (isOptedIn) { - this.gainsightApi('config', 'enableTag', true); - } else { - this.gainsightApi('config', 'enableTag', false); - } - } - - /** - * Transforms the event into a valid format and calls `track`. - * @param events batched events {@link Event} - */ - public reportEvents(events: Event[]): void { - this.initContext.logger.debug(`Reporting ${events.length} events to gainsight`); - events.forEach((event) => { - // We only read event.properties and discard the rest because the context is already sent in the other APIs. - this.gainsightApi('track', event.event_type, event.properties); - }); - } - - /** - * Flushes all internal queues of the shipper. - * It doesn't really do anything inside because this shipper doesn't hold any internal queues. - */ - public async flush() {} - - /** - * Shuts down the shipper. - * It doesn't really do anything inside because this shipper doesn't hold any internal queues. - */ - public shutdown() { - // No need to do anything here for now. - } -} diff --git a/packages/analytics/shippers/gainsight/src/load_snippet.test.ts b/packages/analytics/shippers/gainsight/src/load_snippet.test.ts deleted file mode 100644 index b2e10eca2e4cf..0000000000000 --- a/packages/analytics/shippers/gainsight/src/load_snippet.test.ts +++ /dev/null @@ -1,45 +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 { loadSnippet } from './load_snippet'; - -describe('loadSnippet', () => { - beforeAll(() => { - // Define necessary window and document global variables for the tests - Object.defineProperty(global, 'window', { - writable: true, - value: { - aptrinsic: { - init: true, - }, - }, - }); - - Object.defineProperty(global, 'document', { - writable: true, - value: { - createElement: jest.fn().mockReturnValue({}), - getElementsByTagName: jest - .fn() - .mockReturnValue([{ parentNode: { insertBefore: jest.fn() } }]), - }, - }); - - Object.defineProperty(global, 'aptrinsic', { - writable: true, - value: { - init: true, - }, - }); - }); - - it('should return the gainsight API', () => { - const gainsightApi = loadSnippet({ gainsightOrgId: 'foo' }); - expect(gainsightApi).toBeDefined(); - }); -}); diff --git a/packages/analytics/shippers/gainsight/src/load_snippet.ts b/packages/analytics/shippers/gainsight/src/load_snippet.ts deleted file mode 100644 index 0bb4e67a9a493..0000000000000 --- a/packages/analytics/shippers/gainsight/src/load_snippet.ts +++ /dev/null @@ -1,64 +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 type { GainsightApi } from './types'; - -/** - * gainsight basic configuration. - */ -export interface GainsightSnippetConfig { - /** - * The gainsight account id. - */ - gainsightOrgId: string; - /** - * The URL to load the gainsight client from. Falls back to `web-sdk.aptrinsic.com` if not specified. - */ - scriptUrl?: string; - cssFileEndpoint?: string; - widgetFileEndpoint?: string; -} -export function loadSnippet({ - gainsightOrgId, - scriptUrl = 'web-sdk.aptrinsic.com/api/aptrinsic.js', - cssFileEndpoint = 'web-sdk.aptrinsic.com/style.css', - widgetFileEndpoint = 'web-sdk.aptrinsic.com/widget/aptrinsic-widget.js ', -}: GainsightSnippetConfig): GainsightApi { - /* eslint-disable no-var,dot-notation,prefer-rest-params,@typescript-eslint/no-unused-expressions */ - (function (n, t, a, e, co) { - var i = 'aptrinsic'; - // @ts-expect-error - (n[i] = - // @ts-expect-error - n[i] || - function () { - // @ts-expect-error - (n[i].q = n[i].q || []).push(arguments); - }), - // @ts-expect-error - (n[i].p = e); - // @ts-expect-error - n[i].c = co; - var r = t.createElement('script'); - (r.async = !1), (r.src = a + '?a=' + e); - var c = t.getElementsByTagName('script')[0]; - // @ts-expect-error - c.parentNode.insertBefore(r, c); - })(window, document, scriptUrl, gainsightOrgId, { - cssFileEndpoint, - widgetFileEndpoint, - }); - - const gainsightApi = window['aptrinsic']; - - if (!gainsightApi || !gainsightApi.init) { - throw new Error('Gainsight snippet failed to load. Check browser logs for more information.'); - } - - return gainsightApi; -} diff --git a/packages/analytics/shippers/gainsight/src/types.ts b/packages/analytics/shippers/gainsight/src/types.ts deleted file mode 100644 index 561e5d3302e18..0000000000000 --- a/packages/analytics/shippers/gainsight/src/types.ts +++ /dev/null @@ -1,29 +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. - */ - -/** - * Definition of the gainsight API. - */ -export interface GainsightApi { - init?: boolean; - (functionId: keyof Mapping, ...options: any): void; -} - -interface Mapping { - identify: (id: string, userVars?: Record) => void; - track: (event: string, data?: any) => void; - set: (event: string, data?: any) => void; - reset: () => void; - config: (options: any) => void; -} - -declare global { - interface Window { - aptrinsic: GainsightApi; - } -} diff --git a/packages/analytics/shippers/gainsight/tsconfig.json b/packages/analytics/shippers/gainsight/tsconfig.json deleted file mode 100644 index f3b62b9be125f..0000000000000 --- a/packages/analytics/shippers/gainsight/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "outDir": "target/types", - "types": [ - "jest", - "node" - ] - }, - "include": [ - "**/*.ts" - ], - "kbn_references": [ - "@kbn/analytics-client", - "@kbn/logging-mocks" - ], - "exclude": [ - "target/**/*", - ] -} diff --git a/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.test.tsx b/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.test.tsx index 6109a1bd0688c..4ca4c4ff775f5 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.test.tsx +++ b/packages/core/chrome/core-chrome-browser-internal/src/chrome_service.test.tsx @@ -14,6 +14,7 @@ import { toArray } from 'rxjs/operators'; import { injectedMetadataServiceMock } from '@kbn/core-injected-metadata-browser-mocks'; import { docLinksServiceMock } from '@kbn/core-doc-links-browser-mocks'; import { httpServiceMock } from '@kbn/core-http-browser-mocks'; +import { coreContextMock } from '@kbn/core-base-browser-mocks'; import type { App, PublicAppInfo } from '@kbn/core-application-browser'; import { applicationServiceMock } from '@kbn/core-application-browser-mocks'; import { notificationServiceMock } from '@kbn/core-notifications-browser-mocks'; @@ -75,6 +76,7 @@ function defaultStartTestOptions({ return { browserSupportsCsp, kibanaVersion, + coreContext: coreContextMock.create(), }; } @@ -83,7 +85,10 @@ async function start({ cspConfigMock = { warnLegacyBrowsers: true }, startDeps = defaultStartDeps(), }: { options?: any; cspConfigMock?: any; startDeps?: ReturnType } = {}) { - const service = new ChromeService(options); + const service = new ChromeService({ + ...options, + coreContext: options.coreContext ?? coreContextMock.create(), + }); if (cspConfigMock) { startDeps.injectedMetadata.getCspConfig.mockReturnValue(cspConfigMock); @@ -200,22 +205,6 @@ describe('start', () => { expect(shallow(React.createElement(() => chrome.getHeaderComponent()))).toBeDefined(); }); - it('renders the default project side navigation', async () => { - const { chrome } = await start({ - startDeps: defaultStartDeps([{ id: 'foo', title: 'Foo' } as App], 'foo'), - }); - - chrome.setChromeStyle('project'); - - const component = mount(chrome.getHeaderComponent()); - - const projectHeader = findTestSubject(component, 'kibanaProjectHeader'); - expect(projectHeader.length).toBe(1); - - const defaultProjectSideNav = findTestSubject(component, 'defaultProjectSideNav'); - expect(defaultProjectSideNav.length).toBe(1); - }); - it('renders the custom project side navigation', async () => { const { chrome } = await start({ startDeps: defaultStartDeps([{ id: 'foo', title: 'Foo' } as App], 'foo'), 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 e7f1ecbd29acc..5b35a58e39416 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 @@ -6,13 +6,15 @@ * Side Public License, v 1. */ -import React from 'react'; +import React, { useMemo } from 'react'; import { FormattedMessage } from '@kbn/i18n-react'; import { BehaviorSubject, combineLatest, merge, type Observable, of, ReplaySubject } from 'rxjs'; import { mergeMap, map, takeUntil } from 'rxjs/operators'; import { parse } from 'url'; import { EuiLink } from '@elastic/eui'; import useObservable from 'react-use/lib/useObservable'; + +import type { CoreContext } from '@kbn/core-base-browser-internal'; import type { InternalInjectedMetadataStart } from '@kbn/core-injected-metadata-browser-internal'; import type { AnalyticsServiceSetup } from '@kbn/core-analytics-browser'; import { type DocLinksStart } from '@kbn/core-doc-links-browser'; @@ -29,8 +31,10 @@ import type { ChromeHelpExtension, ChromeUserBanner, ChromeStyle, - ChromeProjectNavigation, ChromeSetProjectBreadcrumbsParams, + NavigationTreeDefinition, + AppDeepLinkId, + CloudURLs, } from '@kbn/core-chrome-browser'; import type { CustomBrandingStart } from '@kbn/core-custom-branding-browser'; import type { @@ -38,12 +42,13 @@ import type { ChromeHelpMenuLink, } from '@kbn/core-chrome-browser'; +import { Logger } from '@kbn/logging'; import { DocTitleService } from './doc_title'; import { NavControlsService } from './nav_controls'; import { NavLinksService } from './nav_links'; import { ProjectNavigationService } from './project_navigation'; import { RecentlyAccessedService } from './recently_accessed'; -import { Header, LoadingIndicator, ProjectHeader, ProjectSideNavigation } from './ui'; +import { Header, LoadingIndicator, ProjectHeader } from './ui'; import { registerAnalyticsContextProvider } from './register_analytics_context_provider'; import type { InternalChromeStart } from './types'; import { HeaderTopBanner } from './ui/header/header_top_banner'; @@ -54,6 +59,7 @@ const SNAPSHOT_REGEX = /-snapshot/i; interface ConstructorParams { browserSupportsCsp: boolean; kibanaVersion: string; + coreContext: CoreContext; } export interface SetupDeps { @@ -81,8 +87,11 @@ export class ChromeService { private readonly projectNavigation = new ProjectNavigationService(); private mutationObserver: MutationObserver | undefined; private readonly isSideNavCollapsed$ = new BehaviorSubject(true); + private logger: Logger; - constructor(private readonly params: ConstructorParams) {} + constructor(private readonly params: ConstructorParams) { + this.logger = params.coreContext.logger.get('chrome-browser'); + } /** * These observables allow consumers to toggle the chrome visibility via either: @@ -225,9 +234,10 @@ export class ChromeService { const navLinks = this.navLinks.start({ application, http }); const projectNavigation = this.projectNavigation.start({ application, - navLinks, + navLinksService: navLinks, http, chromeBreadcrumbs$: breadcrumbs$, + logger: this.logger, }); const recentlyAccessed = await this.recentlyAccessed.start({ http }); const docTitle = this.docTitle.start(); @@ -265,13 +275,20 @@ export class ChromeService { const setProjectSideNavComponent = (component: ISideNavComponent | null) => { validateChromeStyle(); - projectNavigation.setProjectSideNavComponent(component); + projectNavigation.setSideNavComponent(component); }; - const setProjectNavigation = (config: ChromeProjectNavigation) => { + function initProjectNavigation< + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id + >( + navigationTree$: Observable>, + deps: { cloudUrls: CloudURLs } + ) { validateChromeStyle(); - projectNavigation.setProjectNavigation(config); - }; + projectNavigation.initNavigation(navigationTree$, deps); + } const setProjectBreadcrumbs = ( breadcrumbs: ChromeBreadcrumb[] | ChromeBreadcrumb, @@ -362,20 +379,19 @@ export class ChromeService { const activeNodes$ = projectNavigation.getActiveNodes$(); const ProjectHeaderWithNavigationComponent = () => { - const CustomSideNavComponent = useObservable(projectNavigationComponent$, undefined); + const CustomSideNavComponent = useObservable(projectNavigationComponent$, { + current: null, + }); const activeNodes = useObservable(activeNodes$, []); const currentProjectBreadcrumbs$ = projectBreadcrumbs$; - let SideNavComponent: ISideNavComponent = () => null; - - if (CustomSideNavComponent !== undefined) { - // We have the state from the Observable - SideNavComponent = - CustomSideNavComponent.current !== null - ? CustomSideNavComponent.current - : ProjectSideNavigation; - } + const SideNavComponent = useMemo(() => { + if (CustomSideNavComponent.current) { + return CustomSideNavComponent.current; + } + return () => null; + }, [CustomSideNavComponent]); return ( projectNavigation.getNavigationTreeUi$(), setSideNavComponent: setProjectSideNavComponent, setBreadcrumbs: setProjectBreadcrumbs, getActiveNavigationNodes$: () => projectNavigation.getActiveNodes$(), diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/cloud_links.tsx b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/cloud_links.tsx new file mode 100644 index 0000000000000..e317200d00751 --- /dev/null +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/cloud_links.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 { i18n } from '@kbn/i18n'; +import type { CloudLinks, CloudLink, CloudURLs } from '@kbn/core-chrome-browser'; + +const stripTrailingForwardSlash = (str: string) => { + return str[str.length - 1] === '/' ? str.substring(0, str.length - 1) : str; +}; + +const parseCloudURLs = (cloudLinks: CloudLinks): CloudLinks => { + const { userAndRoles, billingAndSub, deployment, performance } = cloudLinks; + + // We remove potential trailing forward slash ("/") at the end of the URL + // because it breaks future navigation in Cloud console once we navigate there. + const parseLink = (link?: CloudLink): CloudLink | undefined => { + if (!link) return undefined; + return { ...link, href: stripTrailingForwardSlash(link.href) }; + }; + + return { + ...cloudLinks, + userAndRoles: parseLink(userAndRoles), + billingAndSub: parseLink(billingAndSub), + deployment: parseLink(deployment), + performance: parseLink(performance), + }; +}; + +export const getCloudLinks = (cloud: CloudURLs): CloudLinks => { + const { billingUrl, deploymentUrl, performanceUrl, usersAndRolesUrl } = cloud; + + const links: CloudLinks = {}; + + if (usersAndRolesUrl) { + links.userAndRoles = { + title: i18n.translate('core.ui.chrome.sideNavigation.cloudLinks.usersAndRolesLinkText', { + defaultMessage: 'Users and roles', + }), + href: usersAndRolesUrl, + }; + } + + if (performanceUrl) { + links.performance = { + title: i18n.translate('core.ui.chrome.sideNavigation.cloudLinks.performanceLinkText', { + defaultMessage: 'Performance', + }), + href: performanceUrl, + }; + } + + if (billingUrl) { + links.billingAndSub = { + title: i18n.translate('core.ui.chrome.sideNavigation.cloudLinks.billingLinkText', { + defaultMessage: 'Billing and subscription', + }), + href: billingUrl, + }; + } + + if (deploymentUrl) { + links.deployment = { + title: i18n.translate('core.ui.chrome.sideNavigation.cloudLinks.deploymentLinkText', { + defaultMessage: 'Project', + }), + href: deploymentUrl, + }; + } + + return parseCloudURLs(links); +}; diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/navigation_presets.ts b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/navigation_presets.ts new file mode 100644 index 0000000000000..a4f162337c438 --- /dev/null +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/navigation_presets.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 { cloneDeep } from 'lodash'; + +import type { NavigationGroupPreset } from '@kbn/core-chrome-browser'; +import { + defaultNavigation as analytics, + type AnalyticsNodeDefinition, +} from '@kbn/default-nav-analytics'; +import { defaultNavigation as ml, type MlNodeDefinition } from '@kbn/default-nav-ml'; +import { + defaultNavigation as devtools, + type DevToolsNodeDefinition, +} from '@kbn/default-nav-devtools'; +import { + defaultNavigation as management, + type ManagementNodeDefinition, +} from '@kbn/default-nav-management'; + +export function getPresets(preset: 'devtools'): DevToolsNodeDefinition; +export function getPresets(preset: 'management'): ManagementNodeDefinition; +export function getPresets(preset: 'ml'): MlNodeDefinition; +export function getPresets(preset: 'analytics'): AnalyticsNodeDefinition; +export function getPresets(preset: 'all'): { + analytics: AnalyticsNodeDefinition; + devtools: DevToolsNodeDefinition; + ml: MlNodeDefinition; + management: ManagementNodeDefinition; +}; +export function getPresets(preset: NavigationGroupPreset | 'all'): + | DevToolsNodeDefinition + | ManagementNodeDefinition + | MlNodeDefinition + | AnalyticsNodeDefinition + | { + analytics: AnalyticsNodeDefinition; + devtools: DevToolsNodeDefinition; + ml: MlNodeDefinition; + management: ManagementNodeDefinition; + } { + if (preset === 'all') { + return { + analytics: cloneDeep(analytics), + devtools: cloneDeep(devtools), + ml: cloneDeep(ml), + management: cloneDeep(management), + }; + } + + switch (preset) { + case 'analytics': + return cloneDeep(analytics); + case 'devtools': + return cloneDeep(devtools); + case 'ml': + return cloneDeep(ml); + case 'management': + return cloneDeep(management); + default: + throw new Error(`Unknown preset: ${preset}`); + } +} diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.test.ts b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.test.ts index 473ec16369266..17a34944751aa 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.test.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/project_navigation_service.test.ts @@ -7,62 +7,485 @@ */ import { createMemoryHistory } from 'history'; -import { firstValueFrom, lastValueFrom, take, BehaviorSubject } from 'rxjs'; +import { firstValueFrom, lastValueFrom, take, BehaviorSubject, of } from 'rxjs'; import { httpServiceMock } from '@kbn/core-http-browser-mocks'; import { applicationServiceMock } from '@kbn/core-application-browser-mocks'; -import type { ChromeNavLinks, ChromeBreadcrumb, AppDeepLinkId } from '@kbn/core-chrome-browser'; +import { loggerMock } from '@kbn/logging-mocks'; +import type { + ChromeNavLinks, + ChromeNavLink, + ChromeBreadcrumb, + AppDeepLinkId, + ChromeProjectNavigationNode, + NavigationTreeDefinition, + GroupDefinition, +} from '@kbn/core-chrome-browser'; import { ProjectNavigationService } from './project_navigation_service'; -const setup = ({ locationPathName = '/' }: { locationPathName?: string } = {}) => { - const projectNavigationService = new ProjectNavigationService(); +const getNavLink = (partial: Partial = {}): ChromeNavLink => ({ + id: 'kibana', + title: 'Kibana', + baseUrl: '/app', + url: `/app/${partial.id ?? 'kibana'}`, + href: `/app/${partial.id ?? 'kibana'}`, + ...partial, +}); + +const getNavLinksService = (ids: Readonly = []) => { + const navLinks = ids.map((id) => getNavLink({ id, title: id.toUpperCase() })); + + const navLinksMock: ChromeNavLinks = { + getNavLinks$: jest.fn().mockReturnValue(of(navLinks)), + has: jest.fn(), + get: jest.fn(), + getAll: jest.fn().mockReturnValue(navLinks), + enableForcedAppSwitcherNavigation: jest.fn(), + getForceAppSwitcherNavigation$: jest.fn(), + }; + return navLinksMock; +}; + +const logger = loggerMock.create(); + +const setup = ({ + locationPathName = '/', + navLinkIds, +}: { locationPathName?: string; navLinkIds?: Readonly } = {}) => { const history = createMemoryHistory(); + history.replace(locationPathName); + + const projectNavigationService = new ProjectNavigationService(); const chromeBreadcrumbs$ = new BehaviorSubject([]); + const navLinksService = getNavLinksService(navLinkIds); - history.replace(locationPathName); const projectNavigation = projectNavigationService.start({ application: { ...applicationServiceMock.createInternalStartContract(), history, }, - navLinks: {} as unknown as ChromeNavLinks, + navLinksService, http: httpServiceMock.createStartContract(), chromeBreadcrumbs$, + logger, }); return { projectNavigation, history, chromeBreadcrumbs$ }; }; +describe('initNavigation()', () => { + const setupInitNavigation = () => { + const { projectNavigation } = setup({ + navLinkIds: ['foo', 'bar', 'discover', 'dashboards', 'visualize'], + }); + + const getNavigationTree = () => + lastValueFrom(projectNavigation.getNavigationTreeUi$().pipe(take(1))); + + return { projectNavigation, getNavigationTree }; + }; + + describe('setup nodes', () => { + const { projectNavigation, getNavigationTree } = setupInitNavigation(); + + beforeAll(() => { + projectNavigation.initNavigation( + of({ + body: [ + { + id: 'group1', + type: 'navGroup', + children: [ + { link: 'foo' }, + { link: 'bar', title: 'Custom title' }, + { link: 'unknown' }, // will be filtered out + ], + }, + { + type: 'navGroup', // No group id, should auto generate one + children: [ + { + children: [{ link: 'foo' }], + }, + ], + }, + { + type: 'recentlyAccessed', + }, + { + type: 'preset', + preset: 'analytics', + }, + ], + footer: [ + { + type: 'navGroup', // No group id, should auto generate one + title: 'Footer group', + children: [ + { + children: [{ link: 'foo' }], + }, + ], + }, + ], + }), + { cloudUrls: {} } + ); + }); + + test('should convert link to deepLink and filter out unknown deepLinks', async () => { + const treeDefinition = await getNavigationTree(); + const [node] = treeDefinition.body as [ChromeProjectNavigationNode]; + expect(node?.children?.length).toBe(2); + }); + + test('should read the title from prop or deeplink', async () => { + const treeDefinition = await getNavigationTree(); + const [node] = treeDefinition.body as [ChromeProjectNavigationNode]; + expect(node.children![0].title).toBe('FOO'); + expect(node.children![1].title).toBe('Custom title'); + }); + + test('should add metadata to node (title, path, href, sideNavStatus...)', async () => { + const treeDefinition = await getNavigationTree(); + const [node] = treeDefinition.body as [ChromeProjectNavigationNode]; + expect(node.children![0]).toEqual({ + id: 'foo', + title: 'FOO', + path: 'group1.foo', + href: '/app/foo', + deepLink: getNavLink({ id: 'foo', title: 'FOO' }), + isElasticInternalLink: false, + sideNavStatus: 'visible', + }); + expect(node.children![0].href).toBe(node.children![0]!.deepLink!.href); + }); + + test('should allow href for absolute links', async () => { + const { projectNavigation: projNavigation, getNavigationTree: getNavTree } = + setupInitNavigation(); + projNavigation.initNavigation( + of({ + body: [ + { + id: 'group1', + type: 'navGroup', + children: [ + { + id: 'foo', + href: 'https://elastic.co', + }, + ], + }, + ], + }), + { cloudUrls: {} } + ); + const treeDefinition = await getNavTree(); + const [node] = treeDefinition.body as [ChromeProjectNavigationNode]; + expect(node.children?.[0].href).toBe('https://elastic.co'); + }); + + test('should throw if href is not an absolute links', async () => { + const { projectNavigation: projNavigation } = setupInitNavigation(); + + projNavigation.initNavigation( + of({ + body: [ + { + id: 'group1', + type: 'navGroup', + children: [ + { + id: 'foo', + href: '../dashboards', + }, + ], + }, + ], + }), + { cloudUrls: {} } + ); + + expect(logger.error).toHaveBeenCalledWith( + new Error('href must be an absolute URL. Node id [foo].') + ); + }); + + test('should auto generate IDs for groups that dont have one', async () => { + const treeDefinition = await getNavigationTree(); + const nodesBody = treeDefinition.body as ChromeProjectNavigationNode[]; + expect(nodesBody[1]).toEqual({ + id: 'node-1', // auto generated + title: '', + path: 'node-1', + type: 'navGroup', + isElasticInternalLink: false, + sideNavStatus: 'visible', + children: [ + { + id: 'node-0', // auto generated + path: 'node-1.node-0', + title: '', + isElasticInternalLink: false, + sideNavStatus: 'visible', + children: [ + { + deepLink: { + baseUrl: '/app', + href: '/app/foo', + id: 'foo', + title: 'FOO', + url: '/app/foo', + }, + href: '/app/foo', + id: 'foo', + isElasticInternalLink: false, + path: 'node-1.node-0.foo', + sideNavStatus: 'visible', + title: 'FOO', + }, + ], + }, + ], + }); + + const nodesFooter = treeDefinition.footer as ChromeProjectNavigationNode[]; + expect(nodesFooter[0]).toEqual({ + id: 'node-4', // auto generated - Counting countinue from the body array length + title: 'Footer group', + path: 'node-4', + type: 'navGroup', + isElasticInternalLink: false, + sideNavStatus: 'visible', + children: [ + { + id: 'node-0', // auto generated + path: 'node-4.node-0', + title: '', + isElasticInternalLink: false, + sideNavStatus: 'visible', + children: [ + { + deepLink: expect.any(Object), // we are not testing the deepLink here + href: '/app/foo', + id: 'foo', + isElasticInternalLink: false, + path: 'node-4.node-0.foo', + sideNavStatus: 'visible', + title: 'FOO', + }, + ], + }, + ], + }); + }); + + test('should leave "recentlyAccessed" as is', async () => { + const treeDefinition = await getNavigationTree(); + const nodes = treeDefinition.body as ChromeProjectNavigationNode[]; + expect(nodes[2]).toEqual({ + type: 'recentlyAccessed', + }); + }); + + test('should load preset', async () => { + const treeDefinition = await getNavigationTree(); + const nodes = treeDefinition.body as ChromeProjectNavigationNode[]; + + expect(nodes[3]).toMatchInlineSnapshot(` + Object { + "children": Array [ + Object { + "deepLink": Object { + "baseUrl": "/app", + "href": "/app/discover", + "id": "discover", + "title": "DISCOVER", + "url": "/app/discover", + }, + "href": "/app/discover", + "id": "discover", + "isElasticInternalLink": false, + "path": "rootNav:analytics.discover", + "sideNavStatus": "visible", + "title": "DISCOVER", + }, + Object { + "deepLink": Object { + "baseUrl": "/app", + "href": "/app/dashboards", + "id": "dashboards", + "title": "DASHBOARDS", + "url": "/app/dashboards", + }, + "href": "/app/dashboards", + "id": "dashboards", + "isElasticInternalLink": false, + "path": "rootNav:analytics.dashboards", + "sideNavStatus": "visible", + "title": "DASHBOARDS", + }, + Object { + "deepLink": Object { + "baseUrl": "/app", + "href": "/app/visualize", + "id": "visualize", + "title": "VISUALIZE", + "url": "/app/visualize", + }, + "href": "/app/visualize", + "id": "visualize", + "isElasticInternalLink": false, + "path": "rootNav:analytics.visualize", + "sideNavStatus": "visible", + "title": "VISUALIZE", + }, + ], + "deepLink": undefined, + "href": undefined, + "icon": "stats", + "id": "rootNav:analytics", + "isElasticInternalLink": false, + "path": "rootNav:analytics", + "renderAs": "accordion", + "sideNavStatus": "visible", + "title": "Data exploration", + "type": "navGroup", + } + `); + }); + }); + + test('should handle race condition when initNavigation() is called after getNavigationTreeUi$()', async () => { + const { projectNavigation } = setup({ navLinkIds: ['foo', 'bar'] }); + + // 1. getNavigationTreeUi$() is called + const promise = lastValueFrom(projectNavigation.getNavigationTreeUi$().pipe(take(1))); + + // 2. initNavigation() is called + projectNavigation.initNavigation( + of({ + body: [ + { + id: 'group1', + type: 'navGroup', + children: [{ link: 'foo' }], + }, + ], + }), + { cloudUrls: {} } + ); + + // 3. getNavigationTreeUi$() is resolved + const treeDefinition = await promise; + const [node] = treeDefinition.body as [ChromeProjectNavigationNode]; + expect(node.children![0].title).toBe('FOO'); + }); + + test('should add the Cloud links to the navigation tree', async () => { + const { projectNavigation } = setup(); + projectNavigation.initNavigation( + // @ts-expect-error - We pass a non valid cloudLink that is not TS valid + of({ + body: [ + { + id: 'group1', + type: 'navGroup', + children: [ + { cloudLink: 'userAndRoles' }, + { cloudLink: 'performance' }, + { cloudLink: 'billingAndSub' }, + { cloudLink: 'deployment' }, + { cloudLink: 'unknown' }, // Should be filtered out + ], + }, + ], + }), + { + cloudUrls: { + usersAndRolesUrl: 'https://cloud.elastic.co/userAndRoles/', // trailing slash should be removed! + performanceUrl: 'https://cloud.elastic.co/performance/', + billingUrl: 'https://cloud.elastic.co/billing/', + deploymentUrl: 'https://cloud.elastic.co/deployment/', + }, + } + ); + + const treeDefinition = await lastValueFrom( + projectNavigation.getNavigationTreeUi$().pipe(take(1)) + ); + const [node] = treeDefinition.body as [ChromeProjectNavigationNode]; + expect(node?.children?.length).toBe(4); + + // userAndRoles + expect(node.children![0]).toEqual({ + deepLink: undefined, + href: 'https://cloud.elastic.co/userAndRoles', + id: 'node-0', + isElasticInternalLink: true, + path: 'group1.node-0', + sideNavStatus: 'visible', + title: 'Users and roles', + }); + + // performance + expect(node.children![1]).toEqual({ + deepLink: undefined, + href: 'https://cloud.elastic.co/performance', + id: 'node-1', + isElasticInternalLink: true, + path: 'group1.node-1', + sideNavStatus: 'visible', + title: 'Performance', + }); + + // billingAndSub + expect(node.children![2]).toEqual({ + deepLink: undefined, + href: 'https://cloud.elastic.co/billing', + id: 'node-2', + isElasticInternalLink: true, + path: 'group1.node-2', + sideNavStatus: 'visible', + title: 'Billing and subscription', + }); + + // deployment + expect(node.children![3]).toEqual({ + deepLink: undefined, + href: 'https://cloud.elastic.co/deployment', + id: 'node-3', + isElasticInternalLink: true, + path: 'group1.node-3', + sideNavStatus: 'visible', + title: 'Project', + }); + }); +}); + describe('breadcrumbs', () => { - const setupWithNavTree = () => { - const currentLocationPathName = '/foo/item1'; + const setupWithNavTree = (initiateNavigation = true) => { + const currentLocationPathName = '/app/navItem1'; const { projectNavigation, chromeBreadcrumbs$, history } = setup({ locationPathName: currentLocationPathName, + navLinkIds: ['navItem1'], }); - const mockNavigation = { - navigationTree: [ + const mockNavigation: NavigationTreeDefinition = { + body: [ { id: 'root', title: 'Root', - path: 'root', breadcrumbStatus: 'hidden' as 'hidden', + type: 'navGroup', children: [ { id: 'subNav', - path: 'root.subNav', title: '', // intentionally empty to skip rendering children: [ { - id: 'navItem1', + link: 'navItem1', title: 'Nav Item 1', - path: 'root.subNav.navItem1', - deepLink: { - id: 'navItem1', - title: 'Nav Item 1', - url: '/foo/item1', - baseUrl: '', - href: '/foo/item1', - }, }, ], }, @@ -70,8 +493,21 @@ describe('breadcrumbs', () => { }, ], }; - projectNavigation.setProjectNavigation(mockNavigation); - return { projectNavigation, history, mockNavigation, chromeBreadcrumbs$ }; + + const subj = new BehaviorSubject>(mockNavigation); + const obs = subj.asObservable(); + + if (initiateNavigation) { + projectNavigation.initNavigation(obs, { cloudUrls: {} }); + } + + return { + projectNavigation, + history, + mockNavigation, + chromeBreadcrumbs$, + updateDefinition: subj.next.bind(subj), + }; }; test('should set breadcrumbs home / nav / custom', async () => { @@ -121,7 +557,7 @@ describe('breadcrumbs', () => { }, Object { "deepLinkId": "navItem1", - "href": "/foo/item1", + "href": "/app/navItem1", "text": "Nav Item 1", }, Object { @@ -268,22 +704,21 @@ describe('breadcrumbs', () => { expect(breadcrumbs).toHaveLength(1); // only home is left }); - // this handles race condition where the final `setProjectNavigation` update happens after the app called `setProjectBreadcrumbs` + // this handles race condition where the `initNavigation` call happens after the app called `setProjectBreadcrumbs` test("shouldn't reset initial deep context breadcrumbs", async () => { - const { projectNavigation, mockNavigation } = setupWithNavTree(); - projectNavigation.setProjectNavigation({ navigationTree: [] }); // reset simulating initial state + const { projectNavigation, mockNavigation } = setupWithNavTree(false); projectNavigation.setProjectBreadcrumbs([ { text: 'custom1', href: '/custom1' }, { text: 'custom2', href: '/custom1/custom2' }, ]); - projectNavigation.setProjectNavigation(mockNavigation); // restore navigation + projectNavigation.initNavigation(of(mockNavigation), { cloudUrls: {} }); // init navigation const breadcrumbs = await firstValueFrom(projectNavigation.getProjectBreadcrumbs$()); expect(breadcrumbs).toHaveLength(4); }); test("shouldn't reset custom breadcrumbs when nav node contents changes, but not the path", async () => { - const { projectNavigation, mockNavigation } = setupWithNavTree(); + const { projectNavigation, mockNavigation, updateDefinition } = setupWithNavTree(); projectNavigation.setProjectBreadcrumbs([ { text: 'custom1', href: '/custom1' }, { text: 'custom2', href: '/custom1/custom2' }, @@ -292,11 +727,9 @@ describe('breadcrumbs', () => { expect(breadcrumbs).toHaveLength(4); // navigation node contents changed, but not the path - projectNavigation.setProjectNavigation({ - navigationTree: [ - { ...mockNavigation.navigationTree[0], title: 'Changed title' }, - ...mockNavigation.navigationTree, - ], + const [node] = mockNavigation.body as [GroupDefinition]; + updateDefinition({ + body: [{ ...node, title: 'Changed title' }, ...mockNavigation.body], }); // context breadcrumbs should not reset @@ -307,35 +740,32 @@ describe('breadcrumbs', () => { describe('getActiveNodes$()', () => { test('should set the active nodes from history location', async () => { - const currentLocationPathName = '/foo/item1'; - const { projectNavigation } = setup({ locationPathName: currentLocationPathName }); + const currentLocationPathName = '/app/item1'; + const { projectNavigation } = setup({ + locationPathName: currentLocationPathName, + navLinkIds: ['item1'], + }); let activeNodes = await lastValueFrom(projectNavigation.getActiveNodes$().pipe(take(1))); expect(activeNodes).toEqual([]); - projectNavigation.setProjectNavigation({ - navigationTree: [ - { - id: 'root', - title: 'Root', - path: 'root', - children: [ - { - id: 'item1', - title: 'Item 1', - path: 'root.item1', - deepLink: { - id: 'item1', - title: 'Item 1', - url: '/foo/item1', - baseUrl: '', - href: '', + projectNavigation.initNavigation( + of({ + body: [ + { + id: 'root', + title: 'Root', + type: 'navGroup', + children: [ + { + link: 'item1', }, - }, - ], - }, - ], - }); + ], + }, + ], + }), + { cloudUrls: {} } + ); activeNodes = await lastValueFrom(projectNavigation.getActiveNodes$().pipe(take(1))); @@ -345,17 +775,23 @@ describe('getActiveNodes$()', () => { id: 'root', title: 'Root', path: 'root', + isElasticInternalLink: false, + sideNavStatus: 'visible', + type: 'navGroup', }, { id: 'item1', - title: 'Item 1', + title: 'ITEM1', path: 'root.item1', + isElasticInternalLink: false, + sideNavStatus: 'visible', + href: '/app/item1', deepLink: { id: 'item1', - title: 'Item 1', - url: '/foo/item1', - baseUrl: '', - href: '', + title: 'ITEM1', + baseUrl: '/app', + url: '/app/item1', + href: '/app/item1', }, }, ], @@ -363,28 +799,29 @@ describe('getActiveNodes$()', () => { }); test('should set the active nodes from getIsActive() handler', async () => { - const { projectNavigation } = setup(); + const { projectNavigation } = setup({ navLinkIds: ['item1'] }); let activeNodes = await lastValueFrom(projectNavigation.getActiveNodes$().pipe(take(1))); expect(activeNodes).toEqual([]); - projectNavigation.setProjectNavigation({ - navigationTree: [ - { - id: 'root', - title: 'Root', - path: 'root', - children: [ - { - id: 'item1', - title: 'Item 1', - path: 'root.item1', - getIsActive: () => true, - }, - ], - }, - ], - }); + projectNavigation.initNavigation( + of({ + body: [ + { + id: 'root', + title: 'Root', + type: 'navGroup', + children: [ + { + link: 'item1', + getIsActive: () => true, + }, + ], + }, + ], + }), + { cloudUrls: {} } + ); activeNodes = await lastValueFrom(projectNavigation.getActiveNodes$().pipe(take(1))); @@ -394,11 +831,24 @@ describe('getActiveNodes$()', () => { id: 'root', title: 'Root', path: 'root', + isElasticInternalLink: false, + sideNavStatus: 'visible', + type: 'navGroup', }, { id: 'item1', - title: 'Item 1', + title: 'ITEM1', path: 'root.item1', + isElasticInternalLink: false, + sideNavStatus: 'visible', + href: '/app/item1', + deepLink: { + id: 'item1', + title: 'ITEM1', + baseUrl: '/app', + url: '/app/item1', + href: '/app/item1', + }, getIsActive: expect.any(Function), }, ], 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 7a8f5b89db653..6d55f1b9ea40e 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 @@ -7,14 +7,14 @@ */ import { InternalApplicationStart } from '@kbn/core-application-browser-internal'; -import { +import type { ChromeNavLinks, - ChromeProjectNavigation, SideNavComponent, ChromeProjectBreadcrumb, ChromeBreadcrumb, ChromeSetProjectBreadcrumbsParams, ChromeProjectNavigationNode, + NavigationTreeDefinition, } from '@kbn/core-chrome-browser'; import type { InternalHttpStart } from '@kbn/core-http-browser-internal'; import { @@ -27,21 +27,33 @@ import { skip, distinctUntilChanged, skipWhile, + filter, } from 'rxjs'; import type { Location } from 'history'; import deepEqual from 'react-fast-compare'; -import { findActiveNodes, flattenNav, stripQueryParams } from './utils'; +import { + AppDeepLinkId, + ChromeNavLink, + CloudURLs, + NavigationTreeDefinitionUI, +} from '@kbn/core-chrome-browser/src'; +import type { Logger } from '@kbn/logging'; + +import { findActiveNodes, flattenNav, parseNavigationTree, stripQueryParams } from './utils'; import { buildBreadcrumbs } from './breadcrumbs'; +import { getCloudLinks } from './cloud_links'; interface StartDeps { application: InternalApplicationStart; - navLinks: ChromeNavLinks; + navLinksService: ChromeNavLinks; http: InternalHttpStart; chromeBreadcrumbs$: Observable; + logger: Logger; } export class ProjectNavigationService { + private logger: Logger | undefined; private customProjectSideNavComponent$ = new BehaviorSubject<{ current: SideNavComponent | null; }>({ current: null }); @@ -49,9 +61,14 @@ export class ProjectNavigationService { private projectsUrl$ = new BehaviorSubject(undefined); private projectName$ = new BehaviorSubject(undefined); private projectUrl$ = new BehaviorSubject(undefined); - private projectNavigation$ = new BehaviorSubject(undefined); - private activeNodes$ = new BehaviorSubject([]); + private navigationTree$ = new BehaviorSubject( + undefined + ); + // The flattened version of the navigation tree for quicker access private projectNavigationNavTreeFlattened: Record = {}; + // The navigation tree for the Side nav UI that still contains layout information (body, footer, etc.) + private navigationTreeUi$ = new BehaviorSubject(null); + private activeNodes$ = new BehaviorSubject([]); private projectBreadcrumbs$ = new BehaviorSubject<{ breadcrumbs: ChromeProjectBreadcrumb[]; @@ -62,9 +79,10 @@ export class ProjectNavigationService { private http?: InternalHttpStart; private unlistenHistory?: () => void; - public start({ application, navLinks, http, chromeBreadcrumbs$ }: StartDeps) { + public start({ application, navLinksService, http, chromeBreadcrumbs$, logger }: StartDeps) { this.application = application; this.http = http; + this.logger = logger; this.onHistoryLocationChange(application.history.location); this.unlistenHistory = application.history.listen(this.onHistoryLocationChange.bind(this)); @@ -72,7 +90,7 @@ export class ProjectNavigationService { .pipe( takeUntil(this.stop$), // skip while the project navigation is not set - skipWhile(() => !this.projectNavigation$.getValue()), + skipWhile(() => !this.navigationTree$.getValue()), // only reset when the active breadcrumb path changes, use ids to get more stable reference distinctUntilChanged((prevNodes, nextNodes) => deepEqual( @@ -110,18 +128,17 @@ export class ProjectNavigationService { setProjectUrl: (projectUrl: string) => { this.projectUrl$.next(projectUrl); }, - setProjectNavigation: (projectNavigation: ChromeProjectNavigation) => { - this.projectNavigation$.next(projectNavigation); - this.projectNavigationNavTreeFlattened = flattenNav(projectNavigation.navigationTree); - this.setActiveProjectNavigationNodes(); - }, - getProjectNavigation$: () => { - return this.projectNavigation$.asObservable(); + initNavigation: ( + navTreeDefinition: Observable>, + { cloudUrls }: { cloudUrls: CloudURLs } + ) => { + this.initNavigation(navTreeDefinition, { navLinksService, cloudUrls }); }, + getNavigationTreeUi$: this.getNavigationTreeUi$.bind(this), getActiveNodes$: () => { return this.activeNodes$.pipe(takeUntil(this.stop$)); }, - setProjectSideNavComponent: (component: SideNavComponent | null) => { + setSideNavComponent: (component: SideNavComponent | null) => { this.customProjectSideNavComponent$.next({ current: component }); }, getProjectSideNavComponent$: () => { @@ -169,6 +186,54 @@ export class ProjectNavigationService { }; } + private initNavigation( + navTreeDefinition: Observable, + { navLinksService, cloudUrls }: { navLinksService: ChromeNavLinks; cloudUrls: CloudURLs } + ) { + if (this.navigationTree$.getValue() !== undefined) { + throw new Error('Project navigation has already been initiated.'); + } + + const deepLinksMap$ = navLinksService.getNavLinks$().pipe( + map((navLinks) => { + return navLinks.reduce((acc, navLink) => { + acc[navLink.id] = navLink; + return acc; + }, {} as Record); + }) + ); + + const cloudLinks = getCloudLinks(cloudUrls); + + combineLatest([navTreeDefinition.pipe(takeUntil(this.stop$)), deepLinksMap$]) + .pipe( + map(([def, deepLinksMap]) => { + return parseNavigationTree(def, { + deepLinks: deepLinksMap, + cloudLinks, + }); + }) + ) + .subscribe({ + next: ({ navigationTree, navigationTreeUI }) => { + this.navigationTree$.next(navigationTree); + this.navigationTreeUi$.next(navigationTreeUI); + + this.projectNavigationNavTreeFlattened = flattenNav(navigationTree); + this.setActiveProjectNavigationNodes(); + }, + error: (err) => { + this.logger?.error(err); + }, + }); + } + + private getNavigationTreeUi$(): Observable { + return this.navigationTreeUi$ + .asObservable() + .pipe(filter((v): v is NavigationTreeDefinitionUI => v !== null)); + } + private setActiveProjectNavigationNodes(_location?: Location) { if (!this.application) return; if (!Object.keys(this.projectNavigationNavTreeFlattened).length) return; diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/utils.test.ts b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/utils.test.ts index a207162e060cb..d886ee3a5d6ac 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/utils.test.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/utils.test.ts @@ -133,33 +133,36 @@ describe('findActiveNodes', () => { title: 'Root', path: 'root', }, + // Group 1 '[0][0]': { id: 'group1', title: 'Group 1', - deepLink: getDeepLink('group1', 'group1'), path: 'root.group1', }, '[0][0][0]': { - id: 'group1A', - title: 'Group 1A', - path: 'root.group1.group1A', - }, - '[0][0][0][0]': { id: 'item1', title: 'Item 1', - deepLink: getDeepLink('item1', 'item1'), - path: 'root.group1.group1A.item1', + deepLink: getDeepLink('item1', 'item1'), // First match + path: 'root.group1.item1', }, + // Group 2 '[0][1]': { id: 'group2', title: 'Group 2', + deepLink: getDeepLink('group2', 'group2'), path: 'root.group2', }, '[0][1][0]': { + id: 'group2A', + title: 'Group 2A', + path: 'root.group2.group2A', + }, + '[0][1][0][0]': { id: 'item2', title: 'Item 2', - deepLink: getDeepLink('item1', 'item1'), // Same link as above, should match both - path: 'root.group2.item2', + // Second match --> should come first as it is the longest match of the 2 + deepLink: getDeepLink('item1', 'item1'), + path: 'root.group2.group2A.item2', }, }; @@ -172,21 +175,21 @@ describe('findActiveNodes', () => { path: 'root', }, { - id: 'group1', - title: 'Group 1', - deepLink: getDeepLink('group1', 'group1'), - path: 'root.group1', + id: 'group2', + title: 'Group 2', + deepLink: getDeepLink('group2', 'group2'), + path: 'root.group2', }, { - id: 'group1A', - title: 'Group 1A', - path: 'root.group1.group1A', + id: 'group2A', + title: 'Group 2A', + path: 'root.group2.group2A', }, { - id: 'item1', - title: 'Item 1', + id: 'item2', + title: 'Item 2', deepLink: getDeepLink('item1', 'item1'), - path: 'root.group1.group1A.item1', + path: 'root.group2.group2A.item2', }, ], [ @@ -196,15 +199,15 @@ describe('findActiveNodes', () => { path: 'root', }, { - id: 'group2', - title: 'Group 2', - path: 'root.group2', + id: 'group1', + title: 'Group 1', + path: 'root.group1', }, { - id: 'item2', - title: 'Item 2', + id: 'item1', + title: 'Item 1', deepLink: getDeepLink('item1', 'item1'), - path: 'root.group2.item2', + path: 'root.group1.item1', }, ], ]); diff --git a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/utils.ts b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/utils.ts index 63f7f8e612c2e..436ff7fb06d80 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/utils.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/project_navigation/utils.ts @@ -6,8 +6,24 @@ * Side Public License, v 1. */ -import { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser/src'; +import type { + ChromeNavLink, + ChromeProjectNavigationNode, + NavigationTreeDefinition, + NodeDefinition, + RecentlyAccessedDefinition, + RootNavigationItemDefinition, + NavigationTreeDefinitionUI, + PresetDefinition, + GroupDefinition, + AppDeepLinkId, + SideNavNodeStatus, + CloudLinkId, + CloudLinks, + ItemDefinition, +} from '@kbn/core-chrome-browser/src'; import type { Location } from 'history'; +import { getPresets } from './navigation_presets'; const wrapIdx = (index: number): string => `[${index}]`; @@ -137,6 +153,9 @@ export const findActiveNodes = ( matches[length] = []; } matches[length].push(key); + // If there are multiple node matches of the same URL path length, we want to order them by + // tree depth, so that the longest match (deepest node) comes first. + matches[length].sort((a, b) => b.length - a.length); } } }); @@ -151,3 +170,285 @@ export const findActiveNodes = ( return activeNodes; }; + +let uniqueId = 0; + +function generateUniqueNodeId() { + const id = `node${uniqueId++}`; + return id; +} + +function isAbsoluteLink(link: string) { + return link.startsWith('http://') || link.startsWith('https://'); +} + +function getNavigationNodeId( + { id: _id, link }: Pick, + idGenerator = generateUniqueNodeId +): string { + const id = _id ?? link; + return id ?? idGenerator(); +} + +function getNavigationNodeHref({ + href, + deepLink, +}: Pick): string | undefined { + return deepLink?.url ?? href; +} + +/** + * We don't have currently a way to know if a user has access to a Cloud section. + * TODO: This function will have to be revisited once we have an API from Cloud to know the user + * permissions. + */ +function hasUserAccessToCloudLink(): boolean { + return true; +} + +function getNodeStatus( + { + link, + deepLink, + cloudLink, + sideNavStatus, + }: { + link?: string; + deepLink?: ChromeNavLink; + cloudLink?: CloudLinkId; + sideNavStatus?: SideNavNodeStatus; + }, + { cloudLinks }: { cloudLinks: CloudLinks } +): SideNavNodeStatus | 'remove' { + if (link && !deepLink) { + // If a link is provided, but no deepLink is found, don't render anything + return 'remove'; + } + + if (cloudLink) { + if (!cloudLinks[cloudLink]) { + // Invalid cloudLinkId or link url has not been set in kibana.yml + return 'remove'; + } + if (!hasUserAccessToCloudLink()) return 'remove'; + } + + if (deepLink && deepLink.hidden) return 'hidden'; + + return sideNavStatus ?? 'visible'; +} + +function getTitleForNode( + navNode: { title?: string; deepLink?: { title: string }; cloudLink?: CloudLinkId }, + { deepLink, cloudLinks }: { deepLink?: ChromeNavLink; cloudLinks: CloudLinks } +): string { + if (navNode.title) { + return navNode.title; + } + + if (deepLink?.title) { + return deepLink.title; + } + + if (navNode.cloudLink) { + return cloudLinks[navNode.cloudLink]?.title ?? ''; + } + + return ''; +} + +function validateNodeProps< + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id +>({ id, link, href, cloudLink, renderAs }: NodeDefinition) { + if (link && cloudLink) { + throw new Error( + `[Chrome navigation] Error in node [${id}]. Only one of "link" or "cloudLink" can be provided.` + ); + } + if (href && cloudLink) { + throw new Error( + `[Chrome navigation] Error in node [${id}]. Only one of "href" or "cloudLink" can be provided.` + ); + } + if (renderAs === 'panelOpener' && !link) { + throw new Error( + `[Chrome navigation] Error in node [${id}]. If renderAs is set to "panelOpener", a "link" must also be provided.` + ); + } + if (renderAs === 'item' && !link) { + throw new Error( + `[Chrome navigation] Error in node [${id}]. If renderAs is set to "item", a "link" must also be provided.` + ); + } +} + +const initNavNode = < + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id +>( + node: NodeDefinition, + { + cloudLinks, + deepLinks, + parentNodePath, + index = 0, + }: { + cloudLinks: CloudLinks; + deepLinks: Record; + parentNodePath?: string; + index?: number; + } +): ChromeProjectNavigationNode | null => { + validateNodeProps(node); + + const { cloudLink, link, children, ...navNodeFromProps } = node; + const deepLink = link !== undefined ? deepLinks[link] : undefined; + const sideNavStatus = getNodeStatus( + { + link, + deepLink, + cloudLink, + sideNavStatus: navNodeFromProps.sideNavStatus, + }, + { cloudLinks } + ); + + if (sideNavStatus === 'remove') { + return null; + } + + const id = getNavigationNodeId(node, () => `node-${index}`) as Id; + const title = getTitleForNode(node, { deepLink, cloudLinks }); + const isElasticInternalLink = cloudLink != null; + const href = isElasticInternalLink ? cloudLinks[cloudLink]?.href : node.href; + const path = parentNodePath ? `${parentNodePath}.${id}` : id; + + if (href && !isAbsoluteLink(href)) { + throw new Error(`href must be an absolute URL. Node id [${id}].`); + } + + const navNode: ChromeProjectNavigationNode = { + ...navNodeFromProps, + id, + href: getNavigationNodeHref({ href, deepLink }), + path, + title, + deepLink, + isElasticInternalLink, + sideNavStatus, + }; + + return navNode; +}; + +const isPresetDefinition = ( + item: RootNavigationItemDefinition | NodeDefinition +): item is PresetDefinition => { + return (item as PresetDefinition).preset !== undefined; +}; + +const isGroupDefinition = ( + item: RootNavigationItemDefinition | NodeDefinition +): item is GroupDefinition => { + return ( + (item as GroupDefinition).type === 'navGroup' || (item as NodeDefinition).children !== undefined + ); +}; + +const isRecentlyAccessedDefinition = ( + item: RootNavigationItemDefinition | NodeDefinition +): item is RecentlyAccessedDefinition => { + return (item as RootNavigationItemDefinition).type === 'recentlyAccessed'; +}; + +export const parseNavigationTree = ( + navigationTreeDef: NavigationTreeDefinition, + { deepLinks, cloudLinks }: { deepLinks: Record; cloudLinks: CloudLinks } +): { + navigationTree: ChromeProjectNavigationNode[]; + navigationTreeUI: NavigationTreeDefinitionUI; +} => { + const navTreePresets = getPresets('all'); + + // The navigation tree that represents the global navigation and will be used by the Chrome service + const navigationTree: ChromeProjectNavigationNode[] = []; + + // Contains UI layout information (body, footer) and render "special" blocks like recently accessed. + const navigationTreeUI: NavigationTreeDefinitionUI = { body: [] }; + + const initNodeAndChildren = ( + node: GroupDefinition | ItemDefinition | NodeDefinition, + { index = 0, parentPath = [] }: { index?: number; parentPath?: string[] } = {} + ): ChromeProjectNavigationNode | RecentlyAccessedDefinition | null => { + if (isRecentlyAccessedDefinition(node)) { + return node; + } + + let nodeSerialized: NodeDefinition | GroupDefinition | ItemDefinition = node; + + if (isPresetDefinition(node)) { + // Get the navGroup definition from the preset + const { preset, type, ...rest } = node; + nodeSerialized = { ...navTreePresets[preset], type: 'navGroup', ...rest }; + } + + const navNode = initNavNode(nodeSerialized, { + cloudLinks, + deepLinks, + parentNodePath: parentPath.length > 0 ? parentPath.join('.') : undefined, + index, + }); + + if (navNode && isGroupDefinition(nodeSerialized) && nodeSerialized.children) { + navNode.children = nodeSerialized.children + .map((child, i) => + initNodeAndChildren(child, { + index: i, + parentPath: [...parentPath, navNode.id], + }) + ) + .filter((child): child is ChromeProjectNavigationNode => child !== null); + } + + return navNode; + }; + + const onNodeInitiated = ( + navNode: ChromeProjectNavigationNode | RecentlyAccessedDefinition | null, + section: 'body' | 'footer' = 'body' + ) => { + if (navNode) { + if (!isRecentlyAccessedDefinition(navNode)) { + // Add the node to the global navigation tree + navigationTree.push(navNode); + } + + // Add the node to the Side Navigation UI tree + if (!navigationTreeUI[section]) { + navigationTreeUI[section] = []; + } + navigationTreeUI[section]!.push(navNode); + } + }; + + const parseNodesArray = ( + nodes?: RootNavigationItemDefinition[], + section: 'body' | 'footer' = 'body', + startIndex = 0 + ): void => { + if (!nodes) return; + + nodes.forEach((node, i) => { + const navNode = initNodeAndChildren(node, { index: startIndex + i }); + onNodeInitiated(navNode, section); + }); + }; + + parseNodesArray(navigationTreeDef.body, 'body'); + parseNodesArray(navigationTreeDef.footer, 'footer', navigationTreeDef.body?.length ?? 0); + + return { navigationTree, navigationTreeUI }; +}; diff --git a/packages/core/chrome/core-chrome-browser-internal/src/types.ts b/packages/core/chrome/core-chrome-browser-internal/src/types.ts index aefe477dd01f1..72f33a0faba73 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/types.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/types.ts @@ -7,13 +7,16 @@ */ import type { - ChromeProjectNavigation, ChromeStart, SideNavComponent, ChromeProjectBreadcrumb, ChromeSetProjectBreadcrumbsParams, + ChromeProjectNavigationNode, + AppDeepLinkId, + NavigationTreeDefinition, + NavigationTreeDefinitionUI, + CloudURLs, } from '@kbn/core-chrome-browser'; -import { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser/src'; import type { Observable } from 'rxjs'; /** @internal */ @@ -62,14 +65,16 @@ export interface InternalChromeStart extends ChromeStart { */ setProjectUrl(projectUrl: string): void; - /** - * Sets the project navigation config to be used for rendering project navigation. - * It is used for default project sidenav, project breadcrumbs, tracking active deep link. - * @param projectNavigation The project navigation config - * - * Use {@link ServerlessPluginStart.setNavigation} to set project navigation config. - */ - setNavigation(projectNavigation: ChromeProjectNavigation): void; + initNavigation< + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id + >( + navigationTree$: Observable>, + deps: { cloudUrls: CloudURLs } + ): void; + + getNavigationTreeUi$: () => Observable; /** * Returns an observable of the active nodes in the project navigation. diff --git a/packages/core/chrome/core-chrome-browser-internal/src/ui/index.ts b/packages/core/chrome/core-chrome-browser-internal/src/ui/index.ts index 89c9b560ad018..7a5ecadd26f23 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/ui/index.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/ui/index.ts @@ -7,6 +7,6 @@ */ export { Header } from './header'; -export { ProjectHeader, SideNavigation as ProjectSideNavigation } from './project'; +export { ProjectHeader } from './project'; export { LoadingIndicator } from './loading_indicator'; export type { NavType } from './header'; diff --git a/packages/core/chrome/core-chrome-browser-internal/src/ui/project/index.ts b/packages/core/chrome/core-chrome-browser-internal/src/ui/project/index.ts index 93f6c4ad054ce..af18e057731b0 100644 --- a/packages/core/chrome/core-chrome-browser-internal/src/ui/project/index.ts +++ b/packages/core/chrome/core-chrome-browser-internal/src/ui/project/index.ts @@ -7,4 +7,3 @@ */ export { ProjectHeader } from './header'; -export { SideNavigation } from './side_navigation'; diff --git a/packages/core/chrome/core-chrome-browser-internal/src/ui/project/side_navigation.tsx b/packages/core/chrome/core-chrome-browser-internal/src/ui/project/side_navigation.tsx deleted file mode 100644 index a76d760170a1a..0000000000000 --- a/packages/core/chrome/core-chrome-browser-internal/src/ui/project/side_navigation.tsx +++ /dev/null @@ -1,18 +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 React from 'react'; -import { EuiText } from '@elastic/eui'; -import type { SideNavComponent } from '@kbn/core-chrome-browser'; - -export const SideNavigation: SideNavComponent = () => { - return ( -
- TODO - Build navigation from config -
- ); -}; diff --git a/packages/core/chrome/core-chrome-browser-internal/tsconfig.json b/packages/core/chrome/core-chrome-browser-internal/tsconfig.json index ed460a1965667..ceb3cd525a19d 100644 --- a/packages/core/chrome/core-chrome-browser-internal/tsconfig.json +++ b/packages/core/chrome/core-chrome-browser-internal/tsconfig.json @@ -41,9 +41,17 @@ "@kbn/core-custom-branding-common", "@kbn/core-analytics-browser-mocks", "@kbn/core-analytics-browser", + "@kbn/default-nav-analytics", + "@kbn/default-nav-ml", + "@kbn/default-nav-management", + "@kbn/default-nav-devtools", "@kbn/shared-ux-router", "@kbn/shared-ux-link-redirect-app", "@kbn/core-http-browser-internal", + "@kbn/core-base-browser-internal", + "@kbn/core-base-browser-mocks", + "@kbn/logging", + "@kbn/logging-mocks", ], "exclude": [ "target/**/*", diff --git a/packages/core/chrome/core-chrome-browser-mocks/src/chrome_service.mock.ts b/packages/core/chrome/core-chrome-browser-mocks/src/chrome_service.mock.ts index 4f1732d940c37..b32314e5c203b 100644 --- a/packages/core/chrome/core-chrome-browser-mocks/src/chrome_service.mock.ts +++ b/packages/core/chrome/core-chrome-browser-mocks/src/chrome_service.mock.ts @@ -73,10 +73,11 @@ const createStartContractMock = () => { setProjectsUrl: jest.fn(), setProjectUrl: jest.fn(), setProjectName: jest.fn(), - setNavigation: jest.fn(), + initNavigation: jest.fn(), setSideNavComponent: jest.fn(), setBreadcrumbs: jest.fn(), getActiveNavigationNodes$: jest.fn(), + getNavigationTreeUi$: jest.fn(), }, }; startContract.navLinks.getAll.mockReturnValue([]); diff --git a/packages/core/chrome/core-chrome-browser/index.ts b/packages/core/chrome/core-chrome-browser/index.ts index 3f5f517578c7d..245362cb3b6d8 100644 --- a/packages/core/chrome/core-chrome-browser/index.ts +++ b/packages/core/chrome/core-chrome-browser/index.ts @@ -32,9 +32,11 @@ export type { ChromeStart, ChromeStyle, ChromeUserBanner, - ChromeProjectNavigation, ChromeProjectNavigationNode, CloudLinkId, + CloudLink, + CloudLinks, + CloudURLs, SideNavCompProps, SideNavComponent, SideNavNodeStatus, @@ -44,4 +46,12 @@ export type { NodeDefinitionWithChildren, NodeRenderAs, EuiThemeSize, + NavigationTreeDefinition, + GroupDefinition, + ItemDefinition, + PresetDefinition, + RecentlyAccessedDefinition, + NavigationGroupPreset, + RootNavigationItemDefinition, + NavigationTreeDefinitionUI, } from './src'; diff --git a/packages/core/chrome/core-chrome-browser/src/index.ts b/packages/core/chrome/core-chrome-browser/src/index.ts index f5c6cd5f40482..616804896c373 100644 --- a/packages/core/chrome/core-chrome-browser/src/index.ts +++ b/packages/core/chrome/core-chrome-browser/src/index.ts @@ -29,11 +29,13 @@ export type { export type { ChromeBadge, ChromeUserBanner, ChromeStyle } from './types'; export type { - ChromeProjectNavigation, ChromeProjectNavigationNode, AppDeepLinkId, AppId, CloudLinkId, + CloudLink, + CloudLinks, + CloudURLs, SideNavCompProps, SideNavComponent, SideNavNodeStatus, @@ -43,4 +45,12 @@ export type { NodeDefinitionWithChildren, RenderAs as NodeRenderAs, EuiThemeSize, + NavigationTreeDefinition, + GroupDefinition, + ItemDefinition, + PresetDefinition, + RecentlyAccessedDefinition, + NavigationGroupPreset, + RootNavigationItemDefinition, + NavigationTreeDefinitionUI, } from './project_navigation'; diff --git a/packages/core/chrome/core-chrome-browser/src/project_navigation.ts b/packages/core/chrome/core-chrome-browser/src/project_navigation.ts index a43e8cbee8a92..e0ee4c0a4d4ca 100644 --- a/packages/core/chrome/core-chrome-browser/src/project_navigation.ts +++ b/packages/core/chrome/core-chrome-browser/src/project_navigation.ts @@ -9,6 +9,7 @@ import type { ComponentType } from 'react'; import type { Location } from 'history'; import type { EuiThemeSizes, IconType } from '@elastic/eui'; +import type { Observable } from 'rxjs'; import type { AppId as DevToolsApp, DeepLinkId as DevToolsLink } from '@kbn/deeplinks-devtools'; import type { AppId as AnalyticsApp, @@ -27,6 +28,7 @@ import type { import type { ChromeBreadcrumb } from './breadcrumb'; import type { ChromeNavLink } from './nav_links'; +import type { ChromeRecentlyAccessedHistoryItem } from './recently_accessed'; /** @public */ export type AppId = @@ -49,6 +51,22 @@ export type AppDeepLinkId = /** @public */ export type CloudLinkId = 'userAndRoles' | 'performance' | 'billingAndSub' | 'deployment'; +export interface CloudURLs { + billingUrl?: string; + deploymentUrl?: string; + performanceUrl?: string; + usersAndRolesUrl?: string; +} + +export interface CloudLink { + title: string; + href: string; +} + +export type CloudLinks = { + [id in CloudLinkId]?: CloudLink; +}; + export type SideNavNodeStatus = 'hidden' | 'visible'; export type RenderAs = 'block' | 'accordion' | 'panelOpener' | 'item'; @@ -188,14 +206,6 @@ export interface ChromeProjectNavigationNode extends NodeDefinitionBase { isElasticInternalLink?: boolean; } -/** @public */ -export interface ChromeProjectNavigation { - /** - * The navigation tree representation of the side bar navigation. - */ - navigationTree: ChromeProjectNavigationNode[]; -} - /** @public */ export interface SideNavCompProps { activeNodes: ChromeProjectNavigationNode[][]; @@ -212,9 +222,6 @@ export interface ChromeSetProjectBreadcrumbsParams { absolute: boolean; } -// --- NOTE: The following types are the ones that the consumer uses to configure their navigation. -// --- They are converted to the ChromeProjectNavigationNode type above. - /** * @public * @@ -253,3 +260,116 @@ export type NodeDefinitionWithChildren< > = NodeDefinition & { children: Required>['children']; }; + +/** The preset that can be pass to the NavigationBucket component */ +export type NavigationGroupPreset = 'analytics' | 'devtools' | 'ml' | 'management'; + +/** + * @public + * + * Definition for the "Recently accessed" section of the side navigation. + */ +export interface RecentlyAccessedDefinition { + type: 'recentlyAccessed'; + /** + * Optional observable for recently accessed items. If not provided, the + * recently items from the Chrome service will be used. + */ + recentlyAccessed$?: Observable; + /** + * If true, the recently accessed list will be collapsed by default. + * @default false + */ + defaultIsCollapsed?: boolean; +} + +/** + * @public + * + * A group root item definition. + */ +export interface GroupDefinition< + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id +> extends Omit, 'children'> { + type: 'navGroup'; + children: Array>; +} + +/** + * @public + * + * A group root item definition built from a specific preset. + */ +export interface PresetDefinition< + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id +> extends Omit, 'children' | 'type'> { + type: 'preset'; + preset: NavigationGroupPreset; +} + +/** + * @public + * + * An navigation item at root level. + */ +export interface ItemDefinition< + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id +> extends Omit, 'children'> { + type: 'navItem'; +} + +/** + * @public + * + * The navigation definition for a root item in the side navigation. + */ +export type RootNavigationItemDefinition< + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id +> = + | RecentlyAccessedDefinition + | GroupDefinition + | PresetDefinition + | ItemDefinition; + +/** + * @public + * + * Definition for the complete navigation tree, including body and footer + */ +export interface NavigationTreeDefinition< + LinkId extends AppDeepLinkId = AppDeepLinkId, + Id extends string = string, + ChildrenId extends string = Id +> { + /** + * Main content of the navigation. Can contain any number of "cloudLink", "recentlyAccessed" + * or "group" items. + * */ + body: Array>; + /** + * Footer content of the navigation. Can contain any number of "cloudLink", "recentlyAccessed" + * or "group" items. + * */ + footer?: Array>; +} + +/** + * @public + * + * Definition for the complete navigation tree, including body and footer + * that is used by the UI to render the navigation. + * This interface is the result of parsing the definition above (validating, replacing "link" props + * with their corresponding "deepLink"...) + */ +export interface NavigationTreeDefinitionUI { + body: Array; + footer?: Array; +} diff --git a/packages/core/http/core-http-resources-server/src/types.ts b/packages/core/http/core-http-resources-server/src/types.ts index b7b9b4387da0c..f0c1a81ed3d4d 100644 --- a/packages/core/http/core-http-resources-server/src/types.ts +++ b/packages/core/http/core-http-resources-server/src/types.ts @@ -47,7 +47,12 @@ export type HttpResourcesResponseOptions = HttpResponseOptions; export interface HttpResourcesServiceToolkit { /** To respond with HTML page bootstrapping Kibana application. */ renderCoreApp: (options?: HttpResourcesRenderOptions) => Promise; - /** To respond with HTML page bootstrapping Kibana application without retrieving user-specific information. */ + /** + * To respond with HTML page bootstrapping Kibana application without retrieving user-specific information. + * **Note:** + * - Your client-side JavaScript bundle will only be loaded on an anonymous page if `plugin.enabledOnAnonymousPages` is enabled in your plugin's `kibana.jsonc` manifest file. + * - You will also need to register the route serving your anonymous app with the `coreSetup.http.anonymousPaths` service in your plugin's client-side `setup` method. + * */ renderAnonymousCoreApp: (options?: HttpResourcesRenderOptions) => Promise; /** To respond with a custom HTML page. */ renderHtml: (options: HttpResourcesResponseOptions) => IKibanaResponse; diff --git a/packages/core/http/core-http-router-server-internal/src/response.ts b/packages/core/http/core-http-router-server-internal/src/response.ts index 1fc8d310233c7..d96eaa6571bf0 100644 --- a/packages/core/http/core-http-router-server-internal/src/response.ts +++ b/packages/core/http/core-http-router-server-internal/src/response.ts @@ -17,6 +17,7 @@ import type { ErrorHttpResponseOptions, KibanaErrorResponseFactory, KibanaRedirectionResponseFactory, + KibanaNotModifiedResponseFactory, KibanaSuccessResponseFactory, KibanaResponseFactory, LifecycleResponseFactory, @@ -51,6 +52,10 @@ const redirectionResponseFactory: KibanaRedirectionResponseFactory = { redirected: (options: RedirectResponseOptions) => new KibanaResponse(302, options.body, options), }; +const notModifiedResponseFactory: KibanaNotModifiedResponseFactory = { + notModified: (options: HttpResponseOptions = {}) => new KibanaResponse(304, undefined, options), +}; + const errorResponseFactory: KibanaErrorResponseFactory = { badRequest: (options: ErrorHttpResponseOptions = {}) => new KibanaResponse(400, options.body || 'Bad Request', options), @@ -120,6 +125,7 @@ export const fileResponseFactory = { export const kibanaResponseFactory: KibanaResponseFactory = { ...successResponseFactory, ...redirectionResponseFactory, + ...notModifiedResponseFactory, ...errorResponseFactory, ...fileResponseFactory, custom: ( diff --git a/packages/core/http/core-http-router-server-internal/src/response_adapter.ts b/packages/core/http/core-http-router-server-internal/src/response_adapter.ts index f6a00bb7e6b92..a5cc1ca1f8d96 100644 --- a/packages/core/http/core-http-router-server-internal/src/response_adapter.ts +++ b/packages/core/http/core-http-router-server-internal/src/response_adapter.ts @@ -33,7 +33,8 @@ function setHeaders(response: HapiResponseObject, headers: Record code >= 100 && code < 300, - isRedirect: (code: number) => code >= 300 && code < 400, + isNotModified: (code: number) => code === 304, + isRedirect: (code: number) => code >= 300 && code < 400 && code !== 304, isError: (code: number) => code >= 400 && code < 600, }; @@ -76,7 +77,10 @@ export class HapiResponseAdapter { if (statusHelpers.isError(kibanaResponse.status)) { return this.toError(kibanaResponse); } - if (statusHelpers.isSuccess(kibanaResponse.status)) { + if ( + statusHelpers.isSuccess(kibanaResponse.status) || + statusHelpers.isNotModified(kibanaResponse.status) + ) { return this.toSuccess(kibanaResponse); } if (statusHelpers.isRedirect(kibanaResponse.status)) { diff --git a/packages/core/http/core-http-router-server-internal/src/router.test.ts b/packages/core/http/core-http-router-server-internal/src/router.test.ts index 7de7dd349ec43..d5c4a202a064d 100644 --- a/packages/core/http/core-http-router-server-internal/src/router.test.ts +++ b/packages/core/http/core-http-router-server-internal/src/router.test.ts @@ -15,7 +15,10 @@ const enhanceWithContext = (fn: (...args: any[]) => any) => fn.bind(null, {}); const routerOptions: RouterOptions = { isDev: false, - versionedRouteResolution: 'oldest', + versionedRouterOptions: { + defaultHandlerResolutionStrategy: 'oldest', + useVersionResolutionStrategyForInternalPaths: [], + }, }; describe('Router', () => { diff --git a/packages/core/http/core-http-router-server-internal/src/router.ts b/packages/core/http/core-http-router-server-internal/src/router.ts index 6026c380d5f62..2558ea04b6083 100644 --- a/packages/core/http/core-http-router-server-internal/src/router.ts +++ b/packages/core/http/core-http-router-server-internal/src/router.ts @@ -125,11 +125,14 @@ function validOptions( export interface RouterOptions { /** Whether we are running in development */ isDev?: boolean; - /** - * Which route resolution algo to use. - * @note default to "oldest", but when running in dev default to "none" - */ - versionedRouteResolution?: 'newest' | 'oldest' | 'none'; + + versionedRouterOptions?: { + /** {@inheritdoc VersionedRouterArgs['defaultHandlerResolutionStrategy'] }*/ + defaultHandlerResolutionStrategy?: 'newest' | 'oldest' | 'none'; + + /** {@inheritdoc VersionedRouterArgs['useVersionResolutionStrategyForInternalPaths'] }*/ + useVersionResolutionStrategyForInternalPaths?: string[]; + }; } /** @internal */ @@ -277,7 +280,7 @@ export class Router { expect(validatedOutputBody).toBe(true); }); }); + + it('allows using default resolution for specific internal routes', async () => { + const versionedRouter = CoreVersionedRouter.from({ + router, + isDev: true, + useVersionResolutionStrategyForInternalPaths: ['/bypass_me/{id?}'], + }); + + let bypassVersionHandler: RequestHandler; + (router.post as jest.Mock).mockImplementation( + (opts: unknown, fn) => (bypassVersionHandler = fn) + ); + versionedRouter.post({ path: '/bypass_me/{id?}', access: 'internal' }).addVersion( + { + version: '1', + validate: false, + }, + handlerFn + ); + + let doNotBypassHandler1: RequestHandler; + (router.put as jest.Mock).mockImplementation((opts: unknown, fn) => (doNotBypassHandler1 = fn)); + versionedRouter.put({ path: '/do_not_bypass_me/{id}', access: 'internal' }).addVersion( + { + version: '1', + validate: false, + }, + handlerFn + ); + + let doNotBypassHandler2: RequestHandler; + (router.get as jest.Mock).mockImplementation((opts: unknown, fn) => (doNotBypassHandler2 = fn)); + versionedRouter.get({ path: '/do_not_bypass_me_either', access: 'internal' }).addVersion( + { + version: '1', + validate: false, + }, + handlerFn + ); + + const byPassedVersionResponse = await bypassVersionHandler!( + {} as any, + createRequest({ version: undefined }), + responseFactory + ); + + const doNotBypassResponse1 = await doNotBypassHandler1!( + {} as any, + createRequest({ version: undefined }), + responseFactory + ); + + const doNotBypassResponse2 = await doNotBypassHandler2!( + {} as any, + createRequest({ version: undefined }), + responseFactory + ); + + expect(byPassedVersionResponse.status).toBe(200); + expect(doNotBypassResponse1.status).toBe(400); + expect(doNotBypassResponse1.payload).toMatch('Please specify a version'); + expect(doNotBypassResponse2.status).toBe(400); + expect(doNotBypassResponse2.payload).toMatch('Please specify a version'); + }); }); diff --git a/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.ts b/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.ts index fafb127947023..0978ea2e2c7e8 100644 --- a/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.ts +++ b/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_route.ts @@ -76,6 +76,7 @@ export class CoreVersionedRoute implements VersionedRoute { return new CoreVersionedRoute(router, method, path, options); } + private useDefaultStrategyForPath: boolean; private isPublic: boolean; private enableQueryVersion: boolean; private constructor( @@ -84,6 +85,7 @@ export class CoreVersionedRoute implements VersionedRoute { public readonly path: string, public readonly options: VersionedRouteConfig ) { + this.useDefaultStrategyForPath = router.useVersionResolutionStrategyForInternalPaths.has(path); this.isPublic = this.options.access === 'public'; this.enableQueryVersion = this.options.enableQueryVersion === true; this.router.router[this.method]( @@ -128,7 +130,7 @@ export class CoreVersionedRoute implements VersionedRoute { let version: undefined | ApiVersion; const maybeVersion = readVersion(req, this.enableQueryVersion); - if (!maybeVersion && this.isPublic) { + if (!maybeVersion && (this.isPublic || this.useDefaultStrategyForPath)) { version = this.getDefaultVersion(); } else { version = maybeVersion; diff --git a/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts b/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts index 0be772e5194f3..08f4fcc0e67c0 100644 --- a/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts +++ b/packages/core/http/core-http-router-server-internal/src/versioned_router/core_versioned_router.ts @@ -12,23 +12,59 @@ import { CoreVersionedRoute } from './core_versioned_route'; import type { HandlerResolutionStrategy, Method, VersionedRouterRoute } from './types'; /** @internal */ -interface Dependencies { +export interface VersionedRouterArgs { router: Router; + /** + * Which route resolution algo to use. + * @note default to "oldest", but when running in dev default to "none" + */ defaultHandlerResolutionStrategy?: HandlerResolutionStrategy; /** Whether Kibana is running in a dev environment */ isDev?: boolean; + /** + * List of internal paths that should use the default handler resolution strategy. By default this + * is no routes ([]) because ONLY Elastic clients are intended to call internal routes. + * + * @note Relaxing this requirement for a path may lead to unspecified behavior because internal + * routes, do not use this unless needed! + * + * @note This is intended as a workaround. For example: users who have in + * error come to rely on internal functionality and cannot easily pass a version + * and need a workaround. + * + * @note Exact matches are performed against the paths as registered against the router + * + * @default [] + */ + useVersionResolutionStrategyForInternalPaths?: string[]; } export class CoreVersionedRouter implements VersionedRouter { private readonly routes = new Set(); - public static from({ router, defaultHandlerResolutionStrategy, isDev }: Dependencies) { - return new CoreVersionedRouter(router, defaultHandlerResolutionStrategy, isDev); + public readonly useVersionResolutionStrategyForInternalPaths: Map = new Map(); + public static from({ + router, + defaultHandlerResolutionStrategy, + isDev, + useVersionResolutionStrategyForInternalPaths, + }: VersionedRouterArgs) { + return new CoreVersionedRouter( + router, + defaultHandlerResolutionStrategy, + isDev, + useVersionResolutionStrategyForInternalPaths + ); } private constructor( public readonly router: Router, public readonly defaultHandlerResolutionStrategy: HandlerResolutionStrategy = 'oldest', - public readonly isDev: boolean = false - ) {} + public readonly isDev: boolean = false, + useVersionResolutionStrategyForInternalPaths: string[] = [] + ) { + for (const path of useVersionResolutionStrategyForInternalPaths) { + this.useVersionResolutionStrategyForInternalPaths.set(path, true); + } + } private registerVersionedRoute = (routeMethod: Method) => diff --git a/packages/core/http/core-http-router-server-mocks/src/router.mock.ts b/packages/core/http/core-http-router-server-mocks/src/router.mock.ts index 4272cf130b38e..d5904699b5813 100644 --- a/packages/core/http/core-http-router-server-mocks/src/router.mock.ts +++ b/packages/core/http/core-http-router-server-mocks/src/router.mock.ts @@ -121,6 +121,7 @@ const createResponseFactoryMock = (): jest.Mocked => ({ ok: jest.fn(), accepted: jest.fn(), noContent: jest.fn(), + notModified: jest.fn(), custom: jest.fn(), redirected: jest.fn(), badRequest: jest.fn(), diff --git a/packages/core/http/core-http-server-internal/src/__snapshots__/http_config.test.ts.snap b/packages/core/http/core-http-server-internal/src/__snapshots__/http_config.test.ts.snap index b9bb2f7fbaf78..fe4336270c0c0 100644 --- a/packages/core/http/core-http-server-internal/src/__snapshots__/http_config.test.ts.snap +++ b/packages/core/http/core-http-server-internal/src/__snapshots__/http_config.test.ts.snap @@ -128,6 +128,7 @@ Object { }, "versioned": Object { "strictClientVersionCheck": true, + "useVersionResolutionStrategyForInternalPaths": Array [], "versionResolution": "oldest", }, "xsrf": Object { diff --git a/packages/core/http/core-http-server-internal/src/http_config.ts b/packages/core/http/core-http-server-internal/src/http_config.ts index eba98e725e804..f6880c38e49ba 100644 --- a/packages/core/http/core-http-server-internal/src/http_config.ts +++ b/packages/core/http/core-http-server-internal/src/http_config.ts @@ -203,6 +203,12 @@ const configSchema = schema.object( * same-build browsers can access the Kibana server. */ strictClientVersionCheck: schema.boolean({ defaultValue: true }), + + /** This should not be configurable in serverless */ + useVersionResolutionStrategyForInternalPaths: offeringBasedSchema({ + traditional: schema.arrayOf(schema.string(), { defaultValue: [] }), + serverless: schema.never(), + }), }), }, { @@ -280,6 +286,7 @@ export class HttpConfig implements IHttpConfig { public versioned: { versionResolution: HandlerResolutionStrategy; strictClientVersionCheck: boolean; + useVersionResolutionStrategyForInternalPaths: string[]; }; public shutdownTimeout: Duration; public restrictInternalApis: boolean; diff --git a/packages/core/http/core-http-server-internal/src/http_server.test.ts b/packages/core/http/core-http-server-internal/src/http_server.test.ts index d50156df94ede..8f5ae22612b45 100644 --- a/packages/core/http/core-http-server-internal/src/http_server.test.ts +++ b/packages/core/http/core-http-server-internal/src/http_server.test.ts @@ -33,7 +33,10 @@ import { of, Observable, BehaviorSubject } from 'rxjs'; const routerOptions: RouterOptions = { isDev: false, - versionedRouteResolution: 'oldest', + versionedRouterOptions: { + defaultHandlerResolutionStrategy: 'oldest', + useVersionResolutionStrategyForInternalPaths: [], + }, }; const cookieOptions = { diff --git a/packages/core/http/core-http-server-internal/src/http_service.test.ts b/packages/core/http/core-http-server-internal/src/http_service.test.ts index e6ee5dc42cd32..e5ef15594b836 100644 --- a/packages/core/http/core-http-server-internal/src/http_service.test.ts +++ b/packages/core/http/core-http-server-internal/src/http_service.test.ts @@ -450,6 +450,7 @@ test('passes versioned config to router', async () => { versioned: { versionResolution: 'newest', strictClientVersionCheck: false, + useVersionResolutionStrategyForInternalPaths: ['/foo'], }, }); @@ -481,6 +482,12 @@ test('passes versioned config to router', async () => { '/foo', expect.any(Object), // logger expect.any(Function), // context enhancer - expect.objectContaining({ isDev: true, versionedRouteResolution: 'newest' }) + expect.objectContaining({ + isDev: true, + versionedRouterOptions: { + defaultHandlerResolutionStrategy: 'newest', + useVersionResolutionStrategyForInternalPaths: ['/foo'], + }, + }) ); }); diff --git a/packages/core/http/core-http-server-internal/src/http_service.ts b/packages/core/http/core-http-server-internal/src/http_service.ts index e1bad2bf25f47..8450f00fb3acc 100644 --- a/packages/core/http/core-http-server-internal/src/http_service.ts +++ b/packages/core/http/core-http-server-internal/src/http_service.ts @@ -25,7 +25,7 @@ import type { InternalContextSetup, InternalContextPreboot, } from '@kbn/core-http-context-server-internal'; -import { Router } from '@kbn/core-http-router-server-internal'; +import { Router, RouterOptions } from '@kbn/core-http-router-server-internal'; import { CspConfigType, cspConfig } from './csp'; import { HttpConfig, HttpConfigType, config as httpConfig } from './http_config'; @@ -136,7 +136,10 @@ export class HttpService path, this.log, prebootServerRequestHandlerContext.createHandler.bind(null, this.coreContext.coreId), - { isDev: this.env.mode.dev, versionedRouteResolution: config.versioned.versionResolution } + { + isDev: this.env.mode.dev, + versionedRouterOptions: getVersionedRouterOptions(config), + } ); registerCallback(router); @@ -182,7 +185,7 @@ export class HttpService const enhanceHandler = this.requestHandlerContext!.createHandler.bind(null, pluginId); const router = new Router(path, this.log, enhanceHandler, { isDev: this.env.mode.dev, - versionedRouteResolution: config.versioned.versionResolution, + versionedRouterOptions: getVersionedRouterOptions(config), }); registerRouter(router); return router; @@ -256,3 +259,11 @@ export class HttpService await this.httpsRedirectServer.stop(); } } + +function getVersionedRouterOptions(config: HttpConfig): RouterOptions['versionedRouterOptions'] { + return { + defaultHandlerResolutionStrategy: config.versioned.versionResolution, + useVersionResolutionStrategyForInternalPaths: + config.versioned.useVersionResolutionStrategyForInternalPaths, + }; +} diff --git a/packages/core/http/core-http-server-internal/src/logging/get_payload_size.test.ts b/packages/core/http/core-http-server-internal/src/logging/get_payload_size.test.ts index 0b64a597ba0d9..03f685823bd4e 100644 --- a/packages/core/http/core-http-server-internal/src/logging/get_payload_size.test.ts +++ b/packages/core/http/core-http-server-internal/src/logging/get_payload_size.test.ts @@ -285,8 +285,10 @@ describe('getPayloadSize', () => { } as unknown as Response, logger ); - expect(logger.warn.mock.calls[0][0]).toMatchInlineSnapshot( - `"Failed to calculate response payload bytes."` - ); + expect(logger.warn.mock.calls[0][0]).toMatchInlineSnapshot(` + "Failed to calculate response payload bytes: Converting circular structure to JSON + --> starting at object with constructor 'Object' + --- property 'circular' closes the circle" + `); }); }); diff --git a/packages/core/http/core-http-server-internal/src/logging/get_payload_size.ts b/packages/core/http/core-http-server-internal/src/logging/get_payload_size.ts index 889f38fe84940..4cf072dc62f03 100644 --- a/packages/core/http/core-http-server-internal/src/logging/get_payload_size.ts +++ b/packages/core/http/core-http-server-internal/src/logging/get_payload_size.ts @@ -81,7 +81,7 @@ export function getResponsePayloadBytes(response: Response, log: Logger): number // We intentionally swallow any errors as this information is // only a nicety for logging purposes, and should not cause the // server to crash if it cannot be determined. - log.warn('Failed to calculate response payload bytes.', e); + log.warn(`Failed to calculate response payload bytes: ${e.message}`); } return undefined; diff --git a/packages/core/http/core-http-server/index.ts b/packages/core/http/core-http-server/index.ts index d53cccacdcc7f..2ff209e8cec5a 100644 --- a/packages/core/http/core-http-server/index.ts +++ b/packages/core/http/core-http-server/index.ts @@ -95,6 +95,7 @@ export type { IKibanaSocket, KibanaErrorResponseFactory, KibanaRedirectionResponseFactory, + KibanaNotModifiedResponseFactory, KibanaSuccessResponseFactory, KibanaResponseFactory, LifecycleResponseFactory, diff --git a/packages/core/http/core-http-server/src/router/index.ts b/packages/core/http/core-http-server/src/router/index.ts index c72d7386e867d..628bab27db54f 100644 --- a/packages/core/http/core-http-server/src/router/index.ts +++ b/packages/core/http/core-http-server/src/router/index.ts @@ -66,6 +66,7 @@ export type { IKibanaSocket } from './socket'; export type { KibanaErrorResponseFactory, KibanaRedirectionResponseFactory, + KibanaNotModifiedResponseFactory, KibanaSuccessResponseFactory, KibanaResponseFactory, LifecycleResponseFactory, diff --git a/packages/core/http/core-http-server/src/router/response.ts b/packages/core/http/core-http-server/src/router/response.ts index 07ec226e8c3a9..194333d42f9c9 100644 --- a/packages/core/http/core-http-server/src/router/response.ts +++ b/packages/core/http/core-http-server/src/router/response.ts @@ -95,9 +95,7 @@ export interface FileHttpResponseOptions { 'ARIA label and tooltip content describing a button that expands an actions menu', } ), + 'euiCollapsedItemActions.allActionsDisabled': i18n.translate( + 'core.euiCollapsedItemActions.allActionsDisabled', + { + defaultMessage: 'Individual item actions are disabled when rows are being selected.', + description: 'Title content when the actions popover toggle is disabled', + } + ), 'euiCollapsibleNavBeta.ariaLabel': i18n.translate('core.euiCollapsibleNavBeta.ariaLabel', { defaultMessage: 'Site menu', }), @@ -252,16 +259,6 @@ export const getEuiContextMapping = (): EuiTokensObject => { 'euiColumnSelector.searchcolumns': i18n.translate('core.euiColumnSelector.searchcolumns', { defaultMessage: 'Search columns', }), - 'euiColumnSelector.buttonActiveSingular': ({ numberOfHiddenFields }: EuiValues) => - i18n.translate('core.euiColumnSelector.buttonActiveSingular', { - defaultMessage: '{numberOfHiddenFields} column hidden', - values: { numberOfHiddenFields }, - }), - 'euiColumnSelector.buttonActivePlural': ({ numberOfHiddenFields }: EuiValues) => - i18n.translate('core.euiColumnSelector.buttonActivePlural', { - defaultMessage: '{numberOfHiddenFields} columns hidden', - values: { numberOfHiddenFields }, - }), 'euiColumnSorting.clearAll': i18n.translate('core.euiColumnSorting.clearAll', { defaultMessage: 'Clear sorting', }), @@ -280,11 +277,6 @@ export const getEuiContextMapping = (): EuiTokensObject => { 'euiColumnSorting.button': i18n.translate('core.euiColumnSorting.button', { defaultMessage: 'Sort fields', }), - 'euiColumnSorting.buttonActive': ({ numberOfSortedFields }: EuiValues) => - i18n.translate('core.euiColumnSorting.buttonActive', { - defaultMessage: '{numberOfSortedFields, plural, one {# field} other {# fields}} sorted', - values: { numberOfSortedFields }, - }), 'euiColumnSortingDraggable.activeSortLabel': ({ display }: EuiValues) => i18n.translate('core.euiColumnSortingDraggable.activeSortLabel', { defaultMessage: '{display} is sorting this data grid', @@ -379,22 +371,6 @@ export const getEuiContextMapping = (): EuiTokensObject => { 'euiCommonlyUsedTimeRanges.legend': i18n.translate('core.euiCommonlyUsedTimeRanges.legend', { defaultMessage: 'Commonly used', }), - 'euiControlBar.screenReaderHeading': i18n.translate('core.euiControlBar.screenReaderHeading', { - defaultMessage: 'Page level controls', - }), - 'euiControlBar.screenReaderAnnouncement': i18n.translate( - 'core.euiControlBar.screenReaderAnnouncement', - { - defaultMessage: - 'There is a new region landmark with page level controls at the end of the document.', - } - ), - 'euiControlBar.customScreenReaderAnnouncement': ({ landmarkHeading }: EuiValues) => - i18n.translate('core.euiControlBar.customScreenReaderAnnouncement', { - defaultMessage: - 'There is a new region landmark called {landmarkHeading} with page level controls at the end of the document.', - values: { landmarkHeading }, - }), 'euiGlobalToastList.clearAllToastsButtonAriaLabel': i18n.translate( 'core.euiGlobalToastList.clearAllToastsButtonAriaLabel', { @@ -547,6 +523,14 @@ export const getEuiContextMapping = (): EuiTokensObject => { defaultMessage: '{columnId}, column {col}, row {row}', values: { columnId, row, col }, }), + 'euiDataGridCell.expansionEnterPrompt': i18n.translate( + 'core.euiDataGridCell.expansionEnterPrompt', + { defaultMessage: 'Press the Enter key to expand this cell.' } + ), + 'euiDataGridCell.focusTrapEnterPrompt': i18n.translate( + 'core.euiDataGridCell.focusTrapEnterPrompt', + { defaultMessage: "Press the Enter key to interact with this cell's contents." } + ), 'euiDataGridCellActions.expandButtonTitle': i18n.translate( 'core.euiDataGridCellActions.expandButtonTitle', { @@ -673,6 +657,11 @@ export const getEuiContextMapping = (): EuiTokensObject => { description: 'Descending size label', } ), + 'euiDataGridToolbarControl.badgeAriaLabel': ({ count }: EuiValues) => + i18n.translate('core.euiDataGridToolbarControl.badgeAriaLabel', { + defaultMessage: 'Active: {count}', + values: { count }, + }), 'euiDatePopoverButton.invalidTitle': ({ title }: EuiValues) => i18n.translate('core.euiDatePopoverButton.invalidTitle', { defaultMessage: 'Invalid date: {title}', @@ -830,11 +819,11 @@ export const getEuiContextMapping = (): EuiTokensObject => { 'core.euiInlineEditForm.saveButtonAriaLabel', { defaultMessage: 'Save edit' } ), - 'euiLink.external.ariaLabel': i18n.translate('core.euiLink.external.ariaLabel', { + 'euiExternalLinkIcon.ariaLabel': i18n.translate('core.euiExternalLinkIcon.ariaLabel', { defaultMessage: 'External link', }), - 'euiLink.newTarget.screenReaderOnlyText': i18n.translate( - 'core.euiLink.newTarget.screenReaderOnlyText', + 'euiExternalLinkIcon.newTarget.screenReaderOnlyText': i18n.translate( + 'core.euiExternalLinkIcon.newTarget.screenReaderOnlyText', { defaultMessage: '(opens in a new tab or window)', } @@ -941,56 +930,10 @@ export const getEuiContextMapping = (): EuiTokensObject => { 'euiModal.closeModal': i18n.translate('core.euiModal.closeModal', { defaultMessage: 'Closes this modal window', }), - 'euiNotificationEventMessages.accordionButtonText': ({ messagesLength }: EuiValues) => - i18n.translate('core.euiNotificationEventMessages.accordionButtonText', { - defaultMessage: '+ {messagesLength} more', - values: { messagesLength }, - }), 'euiErrorBoundary.error': i18n.translate('core.euiErrorBoundary.error', { defaultMessage: 'Error', description: 'Error boundary for uncaught exceptions when rendering part of the application', }), - 'euiNotificationEventMessages.accordionAriaLabelButtonText': ({ - messagesLength, - eventName, - }: EuiValues) => - i18n.translate('core.euiNotificationEventMessages.accordionAriaLabelButtonText', { - defaultMessage: '+ {messagesLength} messages for {eventName}', - values: { messagesLength, eventName }, - }), - 'euiNotificationEventMeta.contextMenuButton': ({ eventName }: EuiValues) => - i18n.translate('core.euiNotificationEventMeta.contextMenuButton', { - defaultMessage: 'Menu for {eventName}', - values: { eventName }, - }), - 'euiNotificationEventReadButton.markAsReadAria': ({ eventName }: EuiValues) => - i18n.translate('core.euiNotificationEventReadButton.markAsReadAria', { - defaultMessage: 'Mark {eventName} as read', - values: { eventName }, - }), - 'euiNotificationEventReadButton.markAsUnreadAria': ({ eventName }: EuiValues) => - i18n.translate('core.euiNotificationEventReadButton.markAsUnreadAria', { - defaultMessage: 'Mark {eventName} as unread', - values: { eventName }, - }), - 'euiNotificationEventReadButton.markAsRead': i18n.translate( - 'core.euiNotificationEventReadButton.markAsRead', - { - defaultMessage: 'Mark as read', - } - ), - 'euiNotificationEventReadButton.markAsUnread': i18n.translate( - 'core.euiNotificationEventReadButton.markAsUnread', - { - defaultMessage: 'Mark as unread', - } - ), - 'euiNotificationEventMessages.accordionHideText': i18n.translate( - 'core.euiNotificationEventMessages.accordionHideText', - { - defaultMessage: 'hide', - } - ), 'euiPagination.pageOfTotalCompressed': ({ page, total }: EuiValues) => ( { defaultMessage: 'You can quickly navigate this list using arrow keys.', } ), - 'euiNotificationEventReadIcon.read': i18n.translate('core.euiNotificationEventReadIcon.read', { - defaultMessage: 'Read', - }), - 'euiNotificationEventReadIcon.readAria': ({ eventName }: EuiValues) => - i18n.translate('core.euiNotificationEventReadIcon.readAria', { - defaultMessage: '{eventName} is read', - values: { eventName }, - }), - 'euiNotificationEventReadIcon.unread': i18n.translate( - 'core.euiNotificationEventReadIcon.unread', - { - defaultMessage: 'Unread', - } - ), - 'euiNotificationEventReadIcon.unreadAria': ({ eventName }: EuiValues) => - i18n.translate('core.euiNotificationEventReadIcon.unreadAria', { - defaultMessage: '{eventName} is unread', - values: { eventName }, - }), 'euiSkeletonLoading.loadingAriaText': ({ contentAriaLabel }: EuiValues) => i18n.translate('core.euiSkeletonLoading.loadingAriaText', { defaultMessage: 'Loading {contentAriaLabel}', diff --git a/packages/core/root/core-root-browser-internal/src/core_system.test.ts b/packages/core/root/core-root-browser-internal/src/core_system.test.ts index 38808592aeb6e..5d9c1533a58a3 100644 --- a/packages/core/root/core-root-browser-internal/src/core_system.test.ts +++ b/packages/core/root/core-root-browser-internal/src/core_system.test.ts @@ -166,6 +166,7 @@ describe('constructor', () => { expect(ChromeServiceConstructor).toHaveBeenCalledWith({ browserSupportsCsp: true, kibanaVersion: 'version', + coreContext: expect.any(Object), }); }); diff --git a/packages/core/root/core-root-browser-internal/src/core_system.ts b/packages/core/root/core-root-browser-internal/src/core_system.ts index 4c50aaf640e2a..406083969cba3 100644 --- a/packages/core/root/core-root-browser-internal/src/core_system.ts +++ b/packages/core/root/core-root-browser-internal/src/core_system.ts @@ -140,6 +140,7 @@ export class CoreSystem { this.chrome = new ChromeService({ browserSupportsCsp, kibanaVersion: injectedMetadata.version, + coreContext: this.coreContext, }); this.docLinks = new DocLinksService(this.coreContext); this.rendering = new RenderingService(); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.isolated.test.mocks.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.isolated.test.mocks.ts new file mode 100644 index 0000000000000..be92b3fc91ef1 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.isolated.test.mocks.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 const getSavedObjectFromSourceMock = jest.fn(); +export const rawDocExistsInNamespaceMock = jest.fn(); + +jest.doMock('./utils', () => { + const actual = jest.requireActual('./utils'); + return { + ...actual, + getSavedObjectFromSource: getSavedObjectFromSourceMock, + rawDocExistsInNamespace: rawDocExistsInNamespaceMock, + }; +}); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.isolated.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.isolated.test.ts new file mode 100644 index 0000000000000..f76747fdfab8c --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.isolated.test.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 { + getSavedObjectFromSourceMock, + rawDocExistsInNamespaceMock, +} from './bulk_get.isolated.test.mocks'; +import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { SavedObject, CheckAuthorizationResult } from '@kbn/core-saved-objects-server'; +import { apiContextMock, ApiExecutionContextMock } from '../../mocks'; +import { performBulkGet } from './bulk_get'; + +interface ObjectInfo { + id: string; + type: string; + attributes: Record; +} + +const mgetResultToSavedObject = (hit: estypes.GetGetResult): SavedObject => { + const type = hit._source.type; + return { + type, + id: hit._id, + references: [], + attributes: hit._source[type], + }; +}; + +const createMgetResult = (object: ObjectInfo): estypes.GetGetResult => { + return { + _index: '.kibana', + found: true, + _id: object.id, + _source: { + type: object.type, + [object.type]: object.attributes, + }, + }; +}; + +const createMgetResponse = (objects: ObjectInfo[]): estypes.MgetResponse => { + return { + docs: objects.map(createMgetResult), + }; +}; + +describe('performBulkGet', () => { + let apiContext: ApiExecutionContextMock; + + beforeEach(() => { + apiContext = apiContextMock.create({ + allowedTypes: ['type'], + }); + + apiContext.helpers.common.getCurrentNamespace.mockReturnValue('default'); + apiContext.extensions.spacesExtension.getSearchableNamespaces.mockResolvedValue(['default']); + + getSavedObjectFromSourceMock.mockReset(); + rawDocExistsInNamespaceMock.mockReset().mockResolvedValue(true); + }); + + it('calls migrationHelper.migrateAndDecryptStorageDocument with the correct parameters', async () => { + const type = 'type'; + + apiContext.client.mget.mockResponse( + createMgetResponse([ + { + type, + id: 'id1', + attributes: { foo: '1' }, + }, + { + type, + id: 'id2', + attributes: { foo: '2' }, + }, + ]) + ); + + getSavedObjectFromSourceMock.mockImplementation((_registry, _type, _id, doc) => + mgetResultToSavedObject(doc) + ); + + const checkResult: CheckAuthorizationResult = { + status: 'fully_authorized', + typeMap: new Map(), + }; + apiContext.extensions.securityExtension.authorizeBulkGet.mockResolvedValue(checkResult); + + await performBulkGet( + { + objects: [ + { + type, + id: 'id1', + }, + { + type, + id: 'id2', + }, + ], + options: {}, + }, + apiContext + ); + + const results = getSavedObjectFromSourceMock.mock.results; + + expect(apiContext.helpers.migration.migrateAndDecryptStorageDocument).toHaveBeenCalledTimes( + results.length + ); + results.forEach((result) => { + expect(apiContext.helpers.migration.migrateAndDecryptStorageDocument).toHaveBeenCalledWith({ + document: result.value, + typeMap: checkResult.typeMap, + }); + }); + }); +}); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.ts index 3a135d4b73ce8..76d07d8e8f705 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_get.ts @@ -46,20 +46,11 @@ type ExpectedBulkGetResult = Either< export const performBulkGet = async ( { objects, options }: PerformBulkGetParams, - { - helpers, - allowedTypes, - client, - migrator, - serializer, - registry, - extensions = {}, - }: ApiExecutionContext + { helpers, allowedTypes, client, serializer, registry, extensions = {} }: ApiExecutionContext ): Promise> => { const { common: commonHelper, validation: validationHelper, - encryption: encryptionHelper, migration: migrationHelper, } = helpers; const { securityExtension, spacesExtension } = extensions; @@ -162,61 +153,67 @@ export const performBulkGet = async ( } const authObjects: AuthorizeBulkGetObject[] = []; - const result = { - saved_objects: expectedBulkGetResults.map((expectedResult) => { - if (isLeft(expectedResult)) { - const { type, id } = expectedResult.value; - authObjects.push({ type, id, existingNamespaces: [], error: true }); - return expectedResult.value as any; - } + const documents = expectedBulkGetResults.map>((expectedResult) => { + if (isLeft(expectedResult)) { + const { type, id } = expectedResult.value; + authObjects.push({ type, id, existingNamespaces: [], error: true }); + return expectedResult.value as any; + } - const { - type, - id, - // set to default namespaces value for `rawDocExistsInNamespaces` check below - namespaces = [SavedObjectsUtils.namespaceIdToString(namespace)], - esRequestIndex, - } = expectedResult.value; + const { + type, + id, + // set to default namespaces value for `rawDocExistsInNamespaces` check below + namespaces = [SavedObjectsUtils.namespaceIdToString(namespace)], + esRequestIndex, + } = expectedResult.value; + + const doc = bulkGetResponse?.body.docs[esRequestIndex]; - const doc = bulkGetResponse?.body.docs[esRequestIndex]; + // @ts-expect-error MultiGetHit._source is optional + const docNotFound = !doc?.found || !rawDocExistsInNamespaces(registry, doc, namespaces); + authObjects.push({ + type, + id, + objectNamespaces: namespaces, // @ts-expect-error MultiGetHit._source is optional - const docNotFound = !doc?.found || !rawDocExistsInNamespaces(registry, doc, namespaces); + existingNamespaces: doc?._source?.namespaces ?? [], + error: docNotFound, + }); - authObjects.push({ - type, + if (docNotFound) { + return { id, - objectNamespaces: namespaces, - // @ts-expect-error MultiGetHit._source is optional - existingNamespaces: doc?._source?.namespaces ?? [], - error: docNotFound, - }); - - if (docNotFound) { - return { - id, - type, - error: errorContent(SavedObjectsErrorHelpers.createGenericNotFoundError(type, id)), - } as any as SavedObject; - } - - // @ts-expect-error MultiGetHit._source is optional - const document = getSavedObjectFromSource(registry, type, id, doc, { - migrationVersionCompatibility, - }); - const migrated = migrationHelper.migrateStorageDocument(document); + type, + error: errorContent(SavedObjectsErrorHelpers.createGenericNotFoundError(type, id)), + } as any as SavedObject; + } - return migrated; - }), - }; + // @ts-expect-error MultiGetHit._source is optional + return getSavedObjectFromSource(registry, type, id, doc, { + migrationVersionCompatibility, + }); + }); const authorizationResult = await securityExtension?.authorizeBulkGet({ namespace, objects: authObjects, }); - return encryptionHelper.optionallyDecryptAndRedactBulkResult( - result, - authorizationResult?.typeMap - ); + const results: Array> = []; + for (const doc of documents) { + results.push( + doc.error + ? doc + : await migrationHelper.migrateAndDecryptStorageDocument({ + document: doc, + typeMap: authorizationResult?.typeMap, + }) + ); + } + + return { + saved_objects: results, + }; }; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_resolve.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_resolve.test.ts index a71f8e27ccb98..77545f73f6bfa 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_resolve.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_resolve.test.ts @@ -114,7 +114,10 @@ describe('#bulkResolve', () => { ], }); expect(mockInternalBulkResolve).toHaveBeenCalledTimes(1); - expect(mockInternalBulkResolve).toHaveBeenCalledWith(expect.objectContaining({ objects })); + expect(mockInternalBulkResolve).toHaveBeenCalledWith( + expect.objectContaining({ objects }), + expect.any(Object) + ); }); it('throws when internalBulkResolve throws', async () => { diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_resolve.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_resolve.ts index a18b69ec29bf6..40d0931808e9c 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_resolve.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/bulk_resolve.ts @@ -27,33 +27,19 @@ export const performBulkResolve = async ( { objects, options }: PerformCreateParams, apiExecutionContext: ApiExecutionContext ): Promise> => { - const { - registry, - helpers, - allowedTypes, - client, - migrator, - serializer, - extensions = {}, - } = apiExecutionContext; - const { common: commonHelper } = helpers; - const { securityExtension, encryptionExtension } = extensions; + const { common: commonHelper } = apiExecutionContext.helpers; const namespace = commonHelper.getCurrentNamespace(options.namespace); - const { resolved_objects: bulkResults } = await internalBulkResolve({ - registry, - allowedTypes, - client, - migrator, - serializer, - getIndexForType: commonHelper.getIndexForType.bind(commonHelper), - incrementCounterInternal: (type, id, counterFields, opts = {}) => - incrementCounterInternal({ type, id, counterFields, options: opts }, apiExecutionContext), - encryptionExtension, - securityExtension, - objects, - options: { ...options, namespace }, - }); + const { resolved_objects: bulkResults } = await internalBulkResolve( + { + objects, + options: { ...options, namespace }, + incrementCounterInternal: (type, id, counterFields, opts = {}) => + incrementCounterInternal({ type, id, counterFields, options: opts }, apiExecutionContext), + }, + apiExecutionContext + ); + const resolvedObjects = bulkResults.map>((result) => { // extract payloads from saved object errors if (isBulkResolveError(result)) { diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.isolated.test.mocks.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.isolated.test.mocks.ts new file mode 100644 index 0000000000000..ec5154bcd38c1 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.isolated.test.mocks.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. + */ + +export const isSupportedEsServerMock = jest.fn(); + +jest.doMock('@kbn/core-elasticsearch-server-internal', () => { + const actual = jest.requireActual('@kbn/core-elasticsearch-server-internal'); + return { + ...actual, + isSupportedEsServer: isSupportedEsServerMock, + }; +}); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.isolated.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.isolated.test.ts new file mode 100644 index 0000000000000..b2a30d24a7bee --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.isolated.test.ts @@ -0,0 +1,113 @@ +/* + * 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 { isSupportedEsServerMock } from './find.isolated.test.mocks'; +import * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { SavedObject, AuthorizationTypeMap } from '@kbn/core-saved-objects-server'; +import { apiContextMock, ApiExecutionContextMock } from '../../mocks'; +import { performFind } from './find'; + +interface ObjectInfo { + id: string; + type: string; + attributes: Record; +} + +const hitToSavedObject = (hit: estypes.SearchHit): SavedObject => { + const type = hit._source.type; + return { + type, + id: hit._id, + references: [], + attributes: hit._source[type], + }; +}; + +const createHit = ({ type, id, attributes }: ObjectInfo): estypes.SearchHit => { + return { + _index: '.kibana', + _id: id, + _score: 1, + _seq_no: 1, + _primary_term: 1, + _source: { + type, + references: [], + [type]: attributes, + }, + }; +}; + +const createSuccessSearchResponse = (objects: ObjectInfo[]): estypes.SearchResponse => { + return { + took: 1, + timed_out: false, + _shards: {} as any, + hits: { + total: objects.length, + hits: objects.map(createHit), + }, + }; +}; + +describe('performFind', () => { + let apiContext: ApiExecutionContextMock; + + beforeEach(() => { + apiContext = apiContextMock.create({ + allowedTypes: ['type'], + }); + + isSupportedEsServerMock.mockReturnValue(true); + + apiContext.helpers.serializer.rawToSavedObject.mockImplementation(hitToSavedObject as any); + apiContext.extensions.spacesExtension.getSearchableNamespaces.mockResolvedValue(['default']); + }); + + it('calls migrationHelper.migrateAndDecryptStorageDocument with the correct parameters', async () => { + const type = 'type'; + + apiContext.client.search.mockResponse( + createSuccessSearchResponse([ + { + type, + id: 'id1', + attributes: { foo: '1' }, + }, + { + type, + id: 'id2', + attributes: { foo: '2' }, + }, + ]) + ); + + const authzTypeMap: AuthorizationTypeMap = new Map(); + apiContext.extensions.securityExtension.getFindRedactTypeMap.mockResolvedValue(authzTypeMap); + + await performFind( + { + options: { type }, + internalOptions: { + disableExtensions: false, + }, + }, + apiContext + ); + + expect(apiContext.helpers.migration.migrateAndDecryptStorageDocument).toHaveBeenCalledTimes(2); + + const results = apiContext.helpers.serializer.rawToSavedObject.mock.results; + results.forEach((result) => { + expect(apiContext.helpers.migration.migrateAndDecryptStorageDocument).toHaveBeenCalledWith({ + document: result.value, + typeMap: authzTypeMap, + }); + }); + }); +}); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.test.ts index 6a16b71b1d9af..9e6f03d2beac8 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.test.ts @@ -266,6 +266,7 @@ describe('find', () => { ...mockTimestampFields, version: mockVersion, score: doc._score, + sort: doc.sort, attributes: doc._source![doc._source!.type], references: [], namespaces: doc._source!.type === NAMESPACE_AGNOSTIC_TYPE ? undefined : ['default'], @@ -296,6 +297,7 @@ describe('find', () => { ...mockTimestampFields, version: mockVersion, score: doc._score, + sort: doc.sort, attributes: doc._source![doc._source!.type], references: [], namespaces: doc._source!.type === NAMESPACE_AGNOSTIC_TYPE ? undefined : [namespace], diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.ts index 3346e6552646a..62b5ccb82d68d 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/find.ts @@ -13,8 +13,8 @@ import { SavedObjectsErrorHelpers, type SavedObjectsRawDoc, CheckAuthorizationResult, - type SavedObject, SavedObjectsRawDocSource, + GetFindRedactTypeMapParams, } from '@kbn/core-saved-objects-server'; import { DEFAULT_NAMESPACE_STRING, @@ -49,13 +49,11 @@ export const performFind = async ( allowedTypes: rawAllowedTypes, mappings, client, - migrator, extensions = {}, }: ApiExecutionContext ): Promise> => { const { common: commonHelper, - encryption: encryptionHelper, serializer: serializerHelper, migration: migrationHelper, } = helpers; @@ -230,31 +228,52 @@ export const performFind = async ( return SavedObjectsUtils.createEmptyFindResponse(options); } - let result: SavedObjectsFindResponse; + // if extensions are enabled, we need to build an updated authorization type map + // to pass on to the redact method + const redactTypeMapParams: GetFindRedactTypeMapParams | undefined = disableExtensions + ? undefined + : { + previouslyCheckedNamespaces: spacesToAuthorize, + objects: [], + }; + const savedObjects: SavedObjectsFindResult[] = []; + + body.hits.hits.forEach((hit: estypes.SearchHit) => { + const obj = serializerHelper.rawToSavedObject(hit as SavedObjectsRawDoc, { + migrationVersionCompatibility, + }); + + if (redactTypeMapParams) { + redactTypeMapParams.objects.push({ + type: obj.type, + id: obj.id, + existingNamespaces: obj.namespaces ?? [], + }); + } + + savedObjects.push({ + ...obj, + score: hit._score!, + sort: hit.sort, + }); + }); + + const redactTypeMap = redactTypeMapParams + ? await securityExtension?.getFindRedactTypeMap(redactTypeMapParams) + : undefined; + + const migratedDocuments: Array> = []; try { - result = { - ...(body.aggregations ? { aggregations: body.aggregations as unknown as A } : {}), - page, - per_page: perPage, - total: body.hits.total, - saved_objects: body.hits.hits.map( - (hit: estypes.SearchHit): SavedObjectsFindResult => { - let savedObject = serializerHelper.rawToSavedObject(hit as SavedObjectsRawDoc, { - migrationVersionCompatibility, + for (const savedObject of savedObjects) { + const { sort, score, ...rawObject } = savedObject; + const migrated = disableExtensions + ? migrationHelper.migrateStorageDocument(rawObject) + : await migrationHelper.migrateAndDecryptStorageDocument({ + document: rawObject, + typeMap: redactTypeMap, }); - // can't migrate a document with partial attributes - if (!fields) { - savedObject = migrationHelper.migrateStorageDocument(savedObject) as SavedObject; - } - return { - ...savedObject, - score: hit._score!, - sort: hit.sort, - }; - } - ), - pit_id: body.pit_id, - } as typeof result; + migratedDocuments.push({ ...migrated, sort, score } as SavedObjectsFindResult); + } } catch (error) { throw SavedObjectsErrorHelpers.decorateGeneralError( error, @@ -262,25 +281,14 @@ export const performFind = async ( ); } - if (disableExtensions) { - return result; - } - - // Now that we have a full set of results with all existing namespaces for each object, - // we need an updated authorization type map to pass on to the redact method - const redactTypeMap = await securityExtension?.getFindRedactTypeMap({ - previouslyCheckedNamespaces: spacesToAuthorize, - objects: result.saved_objects.map((obj) => { - return { - type: obj.type, - id: obj.id, - existingNamespaces: obj.namespaces ?? [], - }; - }), - }); + const result: SavedObjectsFindResponse = { + ...(body.aggregations ? { aggregations: body.aggregations as unknown as A } : {}), + page, + per_page: perPage, + total: body.hits.total as number, + saved_objects: migratedDocuments, + pit_id: body.pit_id, + }; - return encryptionHelper.optionallyDecryptAndRedactBulkResult( - result, - redactTypeMap ?? authorizationResult?.typeMap // If the redact type map is valid, use that one; otherwise, fall back to the authorization check - ); + return result; }; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.isolated.test.mocks.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.isolated.test.mocks.ts new file mode 100644 index 0000000000000..e4a205e888132 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.isolated.test.mocks.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 const getSavedObjectFromSourceMock = jest.fn(); +export const isFoundGetResponseMock = jest.fn(); +export const rawDocExistsInNamespaceMock = jest.fn(); + +jest.doMock('./utils', () => { + const actual = jest.requireActual('./utils'); + return { + ...actual, + isFoundGetResponse: isFoundGetResponseMock, + getSavedObjectFromSource: getSavedObjectFromSourceMock, + rawDocExistsInNamespace: rawDocExistsInNamespaceMock, + }; +}); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.isolated.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.isolated.test.ts new file mode 100644 index 0000000000000..b07f573594fec --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.isolated.test.ts @@ -0,0 +1,63 @@ +/* + * 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 { + getSavedObjectFromSourceMock, + isFoundGetResponseMock, + rawDocExistsInNamespaceMock, +} from './get.isolated.test.mocks'; +import { SavedObject, CheckAuthorizationResult } from '@kbn/core-saved-objects-server'; +import { apiContextMock, ApiExecutionContextMock } from '../../mocks'; +import { performGet } from './get'; + +const createSavedObject = (id = 'foo'): SavedObject => { + return { + id, + type: 'bar', + attributes: {}, + references: [], + }; +}; + +describe('performGet', () => { + let apiContext: ApiExecutionContextMock; + + beforeEach(() => { + apiContext = apiContextMock.create({ + allowedTypes: ['type'], + }); + + getSavedObjectFromSourceMock.mockReset(); + isFoundGetResponseMock.mockReset().mockReturnValue(true); + rawDocExistsInNamespaceMock.mockReset().mockResolvedValue(true); + + apiContext.client.get.mockResponse({ _index: '.kibana', found: true, _id: '_id' }); + }); + + it('calls migrationHelper.migrateAndDecryptStorageDocument with the correct parameters', async () => { + const savedObject = createSavedObject(); + getSavedObjectFromSourceMock.mockReturnValue(savedObject); + + const checkResult: CheckAuthorizationResult = { + status: 'fully_authorized', + typeMap: new Map(), + }; + apiContext.extensions.securityExtension!.authorizeGet.mockResolvedValue(checkResult); + + const type = 'type'; + const id = 'id'; + + await performGet({ type, id, options: {} }, apiContext); + + expect(apiContext.helpers.migration.migrateAndDecryptStorageDocument).toHaveBeenCalledTimes(1); + expect(apiContext.helpers.migration.migrateAndDecryptStorageDocument).toHaveBeenCalledWith({ + document: savedObject, + typeMap: checkResult.typeMap, + }); + }); +}); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.ts index 215036f29583c..602498c3f4293 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/get.ts @@ -24,21 +24,9 @@ export interface PerformGetParams { export const performGet = async ( { type, id, options }: PerformGetParams, - { - registry, - helpers, - allowedTypes, - client, - migrator, - serializer, - extensions = {}, - }: ApiExecutionContext + { registry, helpers, allowedTypes, client, serializer, extensions = {} }: ApiExecutionContext ): Promise> => { - const { - common: commonHelper, - encryption: encryptionHelper, - migration: migrationHelper, - } = helpers; + const { common: commonHelper, migration: migrationHelper } = helpers; const { securityExtension } = extensions; const namespace = commonHelper.getCurrentNamespace(options.namespace); @@ -84,18 +72,8 @@ export const performGet = async ( migrationVersionCompatibility, }); - let migrated: SavedObject; - try { - migrated = migrationHelper.migrateStorageDocument(document) as SavedObject; - } catch (error) { - throw SavedObjectsErrorHelpers.decorateGeneralError( - error, - 'Failed to migrate document to the latest version.' - ); - } - - return encryptionHelper.optionallyDecryptAndRedactSingleResult( - migrated, - authorizationResult?.typeMap - ); + return await migrationHelper.migrateAndDecryptStorageDocument({ + document, + typeMap: authorizationResult?.typeMap, + }); }; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/migration.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/migration.test.ts new file mode 100644 index 0000000000000..d252f2f2b38e5 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/migration.test.ts @@ -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 { SavedObject, AuthorizationTypeMap } from '@kbn/core-saved-objects-server'; +import { + createMigratorMock, + createDocumentMigratorMock, + createEncryptionHelperMock, +} from '../../../mocks'; +import { MigrationHelper } from './migration'; + +const createSavedObject = (id = 'foo'): SavedObject => { + return { + id, + type: 'bar', + attributes: {}, + references: [], + }; +}; + +const createTypeMap = (): AuthorizationTypeMap => { + return new Map(); +}; + +describe('MigrationHelper', () => { + let documentMigrator: ReturnType; + let migrator: ReturnType; + let encryptionHelper: ReturnType; + + let migrationHelper: MigrationHelper; + + beforeEach(() => { + documentMigrator = createDocumentMigratorMock(); + migrator = createMigratorMock(); + migrator.getDocumentMigrator.mockReturnValue(documentMigrator); + encryptionHelper = createEncryptionHelperMock(); + + migrator.migrateDocument.mockImplementation((doc: unknown) => doc as any); + encryptionHelper.optionallyDecryptAndRedactSingleResult.mockImplementation( + (doc: unknown) => doc as any + ); + + migrationHelper = new MigrationHelper({ + encryptionHelper, + migrator, + }); + }); + + describe('migrateAndDecryptStorageDocument', () => { + it('calls documentMigrator.isDowngradeRequired with the correct parameters', async () => { + const doc = createSavedObject(); + + await migrationHelper.migrateAndDecryptStorageDocument({ + document: doc, + typeMap: undefined, + }); + + expect(documentMigrator.isDowngradeRequired).toHaveBeenCalledTimes(1); + expect(documentMigrator.isDowngradeRequired).toHaveBeenCalledWith(doc); + }); + + it('calls migrator.migrateDocument with the correct parameters', async () => { + const doc = createSavedObject(); + + await migrationHelper.migrateAndDecryptStorageDocument({ + document: doc, + typeMap: undefined, + }); + + expect(migrator.migrateDocument).toHaveBeenCalledTimes(1); + expect(migrator.migrateDocument).toHaveBeenCalledWith(doc, { allowDowngrade: true }); + }); + + it('calls encryptionHelper.optionallyDecryptAndRedactSingleResult with the correct parameters', async () => { + const doc = createSavedObject(); + const typeMap = createTypeMap(); + const originalAttributes = { unknown: true }; + + await migrationHelper.migrateAndDecryptStorageDocument({ + document: doc, + typeMap, + originalAttributes, + }); + + expect(encryptionHelper.optionallyDecryptAndRedactSingleResult).toHaveBeenCalledTimes(1); + expect(encryptionHelper.optionallyDecryptAndRedactSingleResult).toHaveBeenCalledWith( + doc, + typeMap, + originalAttributes + ); + }); + + it('performs the calls in the correct order when isDowngradeRequired returns false', async () => { + documentMigrator.isDowngradeRequired.mockReturnValue(false); + + const doc = createSavedObject(); + const typeMap = createTypeMap(); + const originalAttributes = { unknown: true }; + + const migratedDoc = createSavedObject('another_id'); + migrator.migrateDocument.mockReturnValue(migratedDoc); + + await migrationHelper.migrateAndDecryptStorageDocument({ + document: doc, + typeMap, + originalAttributes, + }); + + expect(migrator.migrateDocument).toHaveBeenCalledTimes(1); + expect(encryptionHelper.optionallyDecryptAndRedactSingleResult).toHaveBeenCalledTimes(1); + + const migrateCallOrder = migrator.migrateDocument.mock.invocationCallOrder[0]; + const encryptionCallOrder = + encryptionHelper.optionallyDecryptAndRedactSingleResult.mock.invocationCallOrder[0]; + + expect(migrateCallOrder).toBeLessThan(encryptionCallOrder); + + expect(encryptionHelper.optionallyDecryptAndRedactSingleResult).toHaveBeenCalledWith( + migratedDoc, + typeMap, + originalAttributes + ); + }); + + it('performs the calls in the correct order when isDowngradeRequired returns true', async () => { + documentMigrator.isDowngradeRequired.mockReturnValue(true); + + const doc = createSavedObject(); + const typeMap = createTypeMap(); + const originalAttributes = { unknown: true }; + + const decryptedDoc = createSavedObject('another_id'); + encryptionHelper.optionallyDecryptAndRedactSingleResult.mockReturnValue(decryptedDoc as any); + + await migrationHelper.migrateAndDecryptStorageDocument({ + document: doc, + typeMap, + originalAttributes, + }); + + expect(migrator.migrateDocument).toHaveBeenCalledTimes(1); + expect(encryptionHelper.optionallyDecryptAndRedactSingleResult).toHaveBeenCalledTimes(1); + + const migrateCallOrder = migrator.migrateDocument.mock.invocationCallOrder[0]; + const encryptionCallOrder = + encryptionHelper.optionallyDecryptAndRedactSingleResult.mock.invocationCallOrder[0]; + + expect(encryptionCallOrder).toBeLessThan(migrateCallOrder); + + expect(migrator.migrateDocument).toHaveBeenCalledWith(decryptedDoc, { allowDowngrade: true }); + }); + }); +}); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/migration.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/migration.ts index c7ae86b101984..2530d60ad6608 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/migration.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/helpers/migration.ts @@ -7,8 +7,14 @@ */ import type { PublicMethodsOf } from '@kbn/utility-types'; -import type { SavedObjectUnsanitizedDoc } from '@kbn/core-saved-objects-server'; +import { + SavedObjectsErrorHelpers, + type SavedObjectUnsanitizedDoc, + type AuthorizationTypeMap, + type SavedObject, +} from '@kbn/core-saved-objects-server'; import type { IKibanaMigrator } from '@kbn/core-saved-objects-base-server-internal'; +import type { IEncryptionHelper } from './encryption'; export type IMigrationHelper = PublicMethodsOf; @@ -17,9 +23,17 @@ export type IMigrationHelper = PublicMethodsOf; */ export class MigrationHelper { private migrator: IKibanaMigrator; + private encryptionHelper: IEncryptionHelper; - constructor({ migrator }: { migrator: IKibanaMigrator }) { + constructor({ + migrator, + encryptionHelper, + }: { + migrator: IKibanaMigrator; + encryptionHelper: IEncryptionHelper; + }) { this.migrator = migrator; + this.encryptionHelper = encryptionHelper; } /** @@ -39,4 +53,41 @@ export class MigrationHelper { migrateStorageDocument(document: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc { return this.migrator.migrateDocument(document, { allowDowngrade: true }); } + + async migrateAndDecryptStorageDocument({ + document, + typeMap, + originalAttributes, + }: { + document: SavedObjectUnsanitizedDoc | SavedObject; + typeMap: AuthorizationTypeMap | undefined; + originalAttributes?: T; + }): Promise> { + const downgrade = this.migrator.getDocumentMigrator().isDowngradeRequired(document); + + const migrate = (doc: SavedObjectUnsanitizedDoc | SavedObject) => { + try { + return this.migrator.migrateDocument(doc, { allowDowngrade: true }) as SavedObject; + } catch (error) { + throw SavedObjectsErrorHelpers.decorateGeneralError( + error, + 'Failed to migrate document to the latest version.' + ); + } + }; + + const decrypt = (doc: SavedObjectUnsanitizedDoc | SavedObject) => { + return this.encryptionHelper.optionallyDecryptAndRedactSingleResult( + doc as SavedObject, + typeMap, + originalAttributes + ); + }; + + if (downgrade) { + return migrate(await decrypt(document)); + } else { + return await decrypt(migrate(document)); + } + } } diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/increment_counter_internal.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/increment_counter_internal.ts index 6abb1b6acf55f..0997e9d1328ff 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/increment_counter_internal.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/increment_counter_internal.ts @@ -30,7 +30,7 @@ export interface PerformIncrementCounterInternalParams { export const incrementCounterInternal = async ( { type, id, counterFields, options }: PerformIncrementCounterInternalParams, - { registry, helpers, client, serializer, migrator }: ApiExecutionContext + { registry, helpers, client, serializer }: ApiExecutionContext ): Promise> => { const { common: commonHelper, preflight: preflightHelper, migration: migrationHelper } = helpers; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/internal_bulk_resolve.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/internal_bulk_resolve.test.ts index d1fb50a1bc08a..b195423f46f5d 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/internal_bulk_resolve.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/internal_bulk_resolve.test.ts @@ -26,12 +26,9 @@ import { typeRegistryMock } from '@kbn/core-saved-objects-base-server-mocks'; import { internalBulkResolve, type InternalBulkResolveParams } from './internal_bulk_resolve'; import { normalizeNamespace } from '../utils'; import { - type ISavedObjectsEncryptionExtension, type ISavedObjectsSecurityExtension, - type ISavedObjectTypeRegistry, type SavedObject, SavedObjectsErrorHelpers, - type SavedObjectUnsanitizedDoc, } from '@kbn/core-saved-objects-server'; import { enforceError, @@ -39,7 +36,7 @@ import { setupAuthorizeAndRedactInternalBulkResolveSuccess, } from '../../../test_helpers/repository.test.common'; import { savedObjectsExtensionsMock } from '../../../mocks/saved_objects_extensions.mock'; -import { kibanaMigratorMock } from '../../../mocks'; +import { apiContextMock, type ApiExecutionContextMock } from '../../../mocks'; const VERSION_PROPS = { _seq_no: 1, _primary_term: 1 }; const OBJ_TYPE = 'obj-type'; @@ -59,35 +56,38 @@ beforeEach(() => { describe('internalBulkResolve', () => { let client: ReturnType; - let migrator: ReturnType; - let serializer: SavedObjectsSerializer; let incrementCounterInternal: jest.Mock; - let registry: jest.Mocked; + let serializer: SavedObjectsSerializer; + let apiContext: ApiExecutionContextMock; + + beforeEach(() => { + apiContext = apiContextMock.create({ allowedTypes: [OBJ_TYPE, ENCRYPTED_TYPE] }); + + apiContext.helpers.common.getIndexForType.mockImplementation( + (type: string) => `index-for-${type}` + ); + + apiContext.helpers.migration.migrateAndDecryptStorageDocument.mockImplementation( + ({ document }) => Promise.resolve(document as SavedObject) + ); + + apiContext.extensions = {} as unknown as typeof apiContext.extensions; + + client = apiContext.client; + + const registry = typeRegistryMock.create(); + serializer = new SavedObjectsSerializer(registry); + apiContext.serializer = serializer as unknown as typeof apiContext.serializer; + }); /** Sets up the type registry, saved objects client, etc. and return the full parameters object to be passed to `internalBulkResolve` */ function setup( objects: SavedObjectsBulkResolveObject[], - options: SavedObjectsBaseOptions = {}, - extensions?: { - encryptionExt?: ISavedObjectsEncryptionExtension; - securityExt?: ISavedObjectsSecurityExtension; - } + options: SavedObjectsBaseOptions = {} ): InternalBulkResolveParams { - registry = typeRegistryMock.create(); - client = elasticsearchClientMock.createElasticsearchClient(); - migrator = kibanaMigratorMock.create(); - serializer = new SavedObjectsSerializer(registry); incrementCounterInternal = jest.fn().mockRejectedValue(new Error('increment error')); // mock error to implicitly test that it is caught and swallowed return { - registry, - allowedTypes: [OBJ_TYPE, ENCRYPTED_TYPE], - migrator, - client, - serializer, - getIndexForType: (type: string) => `index-for-${type}`, incrementCounterInternal, - encryptionExtension: extensions?.encryptionExt, - securityExtension: extensions?.securityExt, objects, options, }; @@ -242,7 +242,7 @@ describe('internalBulkResolve', () => { ); mockIsNotFoundFromUnsupportedServer.mockReturnValue(true); - await expect(() => internalBulkResolve(params)).rejects.toThrow( + await expect(() => internalBulkResolve(params, apiContext)).rejects.toThrow( SavedObjectsErrorHelpers.createGenericNotFoundEsUnavailableError() ); expect(client.bulk).toHaveBeenCalledTimes(1); @@ -252,7 +252,7 @@ describe('internalBulkResolve', () => { it('returns an empty array if no object args are passed in', async () => { const params = setup([], { namespace }); - const result = await internalBulkResolve(params); + const result = await internalBulkResolve(params, apiContext); expect(client.bulk).not.toHaveBeenCalled(); expect(client.mget).not.toHaveBeenCalled(); expect(result.resolved_objects).toEqual([]); @@ -262,7 +262,7 @@ describe('internalBulkResolve', () => { const objects = [{ type: UNSUPPORTED_TYPE, id: '1' }]; const params = setup(objects, { namespace }); - const result = await internalBulkResolve(params); + const result = await internalBulkResolve(params, apiContext); expect(client.bulk).not.toHaveBeenCalled(); expect(client.mget).not.toHaveBeenCalled(); expect(result.resolved_objects).toEqual([expectUnsupportedTypeError({ id: '1' })]); @@ -289,7 +289,7 @@ describe('internalBulkResolve', () => { ); mockRawDocExistsInNamespace.mockReturnValue(false); // for objs 3 and 3-newId - const result = await internalBulkResolve(params); + const result = await internalBulkResolve(params, apiContext); expectBulkArgs(expectedNamespaceString, ['1', '2', '3']); expectMgetArgs(namespace, ['1', '2', '2-newId', '3', '3-newId']); expect(mockRawDocExistsInNamespace).toHaveBeenCalledTimes(2); // for objs 3 and 3-newId @@ -311,7 +311,7 @@ describe('internalBulkResolve', () => { // does not attempt to fetch obj 1-newId, because that alias is disabled ); - const result = await internalBulkResolve(params); + const result = await internalBulkResolve(params, apiContext); expectBulkArgs(expectedNamespaceString, ['1']); expectMgetArgs(namespace, ['1']); expect(result.resolved_objects).toEqual([ @@ -352,7 +352,7 @@ describe('internalBulkResolve', () => { { found: true } // fetch obj 7-newId ); - const result = await internalBulkResolve(params); + const result = await internalBulkResolve(params, apiContext); const bulkIds = ['2', '3', '4', '5', '6', '7']; expectBulkArgs(expectedNamespaceString, bulkIds); const mgetIds = ['2', '3', '4', '4-newId', '5', '5-newId', '6', '6-newId', '7', '7-newId']; @@ -368,7 +368,7 @@ describe('internalBulkResolve', () => { ]); }); - it('migrates the resolved objects', async () => { + it('migrates and decrypts the resolved objects', async () => { const objects = [ { type: OBJ_TYPE, id: '1' }, { type: OBJ_TYPE, id: '2' }, @@ -376,81 +376,28 @@ describe('internalBulkResolve', () => { const params = setup(objects, { namespace }); mockBulkResults({ found: false }, { found: false }); mockMgetResults({ found: true }, { found: true }); - migrator.migrateDocument.mockImplementation( - (doc) => `migrated-${doc}` as unknown as SavedObjectUnsanitizedDoc + const migrationHelper = apiContext.helpers.migration; + migrationHelper.migrateAndDecryptStorageDocument.mockImplementation(({ document }) => + Promise.resolve(`migrated-${document}` as unknown as SavedObject) ); - await expect(internalBulkResolve(params)).resolves.toHaveProperty('resolved_objects', [ - expect.objectContaining({ saved_object: 'migrated-mock-obj-for-1' }), - expect.objectContaining({ saved_object: 'migrated-mock-obj-for-2' }), - ]); - - expect(migrator.migrateDocument).toHaveBeenCalledTimes(2); - expect(migrator.migrateDocument).nthCalledWith( - 1, - 'mock-obj-for-1', - expect.objectContaining({ allowDowngrade: expect.any(Boolean) }) + await expect(internalBulkResolve(params, apiContext)).resolves.toHaveProperty( + 'resolved_objects', + [ + expect.objectContaining({ saved_object: 'migrated-mock-obj-for-1' }), + expect.objectContaining({ saved_object: 'migrated-mock-obj-for-2' }), + ] ); - expect(migrator.migrateDocument).nthCalledWith(2, 'mock-obj-for-2', { - allowDowngrade: expect.any(Boolean), - }); - }); - }); - - describe('with encryption extension', () => { - const namespace = 'foo'; - - const attributes = { - attrNotSoSecret: '*not-so-secret*', - attrOne: 'one', - attrSecret: '*secret*', - attrThree: 'three', - title: 'Testing', - }; - beforeEach(() => { - mockGetSavedObjectFromSource.mockImplementation((_registry, type, id) => { - return { - id, - type, - namespaces: [namespace], - attributes, - references: [], - } as SavedObject; + expect(migrationHelper.migrateAndDecryptStorageDocument).toHaveBeenCalledTimes(2); + expect(migrationHelper.migrateAndDecryptStorageDocument).nthCalledWith(1, { + document: 'mock-obj-for-1', + typeMap: undefined, + }); + expect(migrationHelper.migrateAndDecryptStorageDocument).nthCalledWith(2, { + document: 'mock-obj-for-2', + typeMap: undefined, }); - }); - - it('only attempts to decrypt and strip attributes for types that are encryptable', async () => { - const objects = [ - { type: OBJ_TYPE, id: '11' }, // non encryptable type - { type: ENCRYPTED_TYPE, id: '12' }, // encryptable type - ]; - const mockEncryptionExt = savedObjectsExtensionsMock.createEncryptionExtension(); - const params = setup(objects, { namespace }, { encryptionExt: mockEncryptionExt }); - mockBulkResults( - // No alias matches - { found: false }, - { found: false } - ); - mockMgetResults( - // exact matches - { found: true }, - { found: true } - ); - - mockEncryptionExt.isEncryptableType.mockReturnValueOnce(false); - mockEncryptionExt.isEncryptableType.mockReturnValueOnce(true); - - await internalBulkResolve(params); - - expect(mockEncryptionExt.isEncryptableType).toBeCalledTimes(2); - expect(mockEncryptionExt.isEncryptableType).toBeCalledWith(OBJ_TYPE); - expect(mockEncryptionExt.isEncryptableType).toBeCalledWith(ENCRYPTED_TYPE); - - expect(mockEncryptionExt.decryptOrStripResponseAttributes).toBeCalledTimes(1); - expect(mockEncryptionExt.decryptOrStripResponseAttributes).toBeCalledWith( - expect.objectContaining({ type: ENCRYPTED_TYPE, id: '12', attributes }) - ); }); }); @@ -487,7 +434,8 @@ describe('internalBulkResolve', () => { }); mockSecurityExt = savedObjectsExtensionsMock.createSecurityExtension(); - params = setup(objects, { namespace }, { securityExt: mockSecurityExt }); + apiContext.extensions.securityExtension = mockSecurityExt; + params = setup(objects, { namespace }); mockBulkResults( // No alias matches @@ -503,14 +451,14 @@ describe('internalBulkResolve', () => { test(`propagates decorated error when unauthorized`, async () => { setupAuthorizeAndRedactInternalBulkResolveFailure(mockSecurityExt); - await expect(internalBulkResolve(params)).rejects.toThrow(enforceError); + await expect(internalBulkResolve(params, apiContext)).rejects.toThrow(enforceError); expect(mockSecurityExt.authorizeAndRedactInternalBulkResolve).toHaveBeenCalledTimes(1); }); test(`returns result when successful`, async () => { setupAuthorizeAndRedactInternalBulkResolveSuccess(mockSecurityExt); - const result = await internalBulkResolve(params); + const result = await internalBulkResolve(params, apiContext); expect(mockSecurityExt.authorizeAndRedactInternalBulkResolve).toHaveBeenCalledTimes(1); const bulkIds = objects.map((obj) => obj.id); @@ -524,7 +472,7 @@ describe('internalBulkResolve', () => { test(`returns empty array when no objects are provided`, async () => { setupAuthorizeAndRedactInternalBulkResolveSuccess(mockSecurityExt); - const result = await internalBulkResolve({ ...params, objects: [] }); + const result = await internalBulkResolve({ ...params, objects: [] }, apiContext); expect(result).toEqual({ resolved_objects: [] }); expect(mockSecurityExt.authorizeAndRedactInternalBulkResolve).not.toHaveBeenCalled(); }); @@ -536,7 +484,7 @@ describe('internalBulkResolve', () => { test(`in the default space`, async () => { await expect( - internalBulkResolve({ ...params, options: { namespace: 'default' } }) + internalBulkResolve({ ...params, options: { namespace: 'default' } }, apiContext) ).rejects.toThrow(enforceError); expect(mockSecurityExt.authorizeAndRedactInternalBulkResolve).toHaveBeenCalledTimes(1); @@ -547,7 +495,7 @@ describe('internalBulkResolve', () => { }); test(`in a non-default space`, async () => { - await expect(internalBulkResolve(params)).rejects.toThrow(enforceError); + await expect(internalBulkResolve(params, apiContext)).rejects.toThrow(enforceError); expect(mockSecurityExt.authorizeAndRedactInternalBulkResolve).toHaveBeenCalledTimes(1); const { namespace: actualNamespace, objects: actualObjects } = diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/internal_bulk_resolve.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/internal_bulk_resolve.ts index 53cb04453555c..ef2afc5b8a95f 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/internal_bulk_resolve.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/internals/internal_bulk_resolve.ts @@ -17,9 +17,6 @@ import type { SavedObjectsIncrementCounterOptions, } from '@kbn/core-saved-objects-api-server'; import { - type ISavedObjectsEncryptionExtension, - type ISavedObjectsSecurityExtension, - type ISavedObjectTypeRegistry, type SavedObjectsRawDocSource, type SavedObject, type BulkResolveError, @@ -27,7 +24,6 @@ import { SavedObjectsErrorHelpers, } from '@kbn/core-saved-objects-server'; import { - type IKibanaMigrator, LEGACY_URL_ALIAS_TYPE, type LegacyUrlAlias, } from '@kbn/core-saved-objects-base-server-internal'; @@ -49,6 +45,7 @@ import { left, right, } from '../utils'; +import type { ApiExecutionContext } from '../types'; import type { RepositoryEsClient } from '../../repository_es_client'; const MAX_CONCURRENT_RESOLVE = 10; @@ -59,22 +56,14 @@ const MAX_CONCURRENT_RESOLVE = 10; * @internal */ export interface InternalBulkResolveParams { - registry: ISavedObjectTypeRegistry; - migrator: IKibanaMigrator; - allowedTypes: string[]; - client: RepositoryEsClient; - serializer: ISavedObjectsSerializer; - getIndexForType: (type: string) => string; + objects: SavedObjectsBulkResolveObject[]; + options?: SavedObjectsResolveOptions; incrementCounterInternal: ( type: string, id: string, counterFields: Array, options?: SavedObjectsIncrementCounterOptions ) => Promise>; - encryptionExtension: ISavedObjectsEncryptionExtension | undefined; - securityExtension: ISavedObjectsSecurityExtension | undefined; - objects: SavedObjectsBulkResolveObject[]; - options?: SavedObjectsResolveOptions; } /** @@ -96,21 +85,14 @@ export function isBulkResolveError( type AliasInfo = Pick; export async function internalBulkResolve( - params: InternalBulkResolveParams + params: InternalBulkResolveParams, + apiExecutionContext: ApiExecutionContext ): Promise> { - const { - registry, - migrator, - allowedTypes, - client, - serializer, - getIndexForType, - incrementCounterInternal, - encryptionExtension, - securityExtension, - objects, - options = {}, - } = params; + const { incrementCounterInternal, objects, options = {} } = params; + + const { registry, allowedTypes, client, serializer } = apiExecutionContext; + const { common: commonHelper, migration: migrationHelper } = apiExecutionContext.helpers; + const { securityExtension } = apiExecutionContext.extensions; if (objects.length === 0) { return { resolved_objects: [] }; @@ -126,14 +108,14 @@ export async function internalBulkResolve( validObjects, client, serializer, - getIndexForType, + commonHelper.getIndexForType.bind(commonHelper), namespace ); const docsToBulkGet: Array<{ _id: string; _index: string }> = []; const aliasInfoArray: Array = []; validObjects.forEach(({ value: { type, id } }, i) => { - const objectIndex = getIndexForType(type); + const objectIndex = commonHelper.getIndexForType(type); docsToBulkGet.push({ // attempt to find an exact match for the given ID _id: serializer.generateRawId(namespace, type, id), @@ -182,17 +164,15 @@ export async function internalBulkResolve( objectId: string, doc: MgetResponseItem ) { - // Encryption // @ts-expect-error MultiGetHit._source is optional const object = getSavedObjectFromSource(registry, objectType, objectId, doc, { migrationVersionCompatibility, }); - const migrated = migrator.migrateDocument(object, { allowDowngrade: true }) as SavedObject; - - if (!encryptionExtension?.isEncryptableType(migrated.type)) { - return migrated; - } - return encryptionExtension.decryptOrStripResponseAttributes(migrated); + // migrate and decrypt document + return await migrationHelper.migrateAndDecryptStorageDocument({ + document: object, + typeMap: undefined, + }); } // map function for pMap below @@ -275,9 +255,11 @@ export async function internalBulkResolve( { refresh: false } ).catch(() => {}); // if the call fails for some reason, intentionally swallow the error - if (!securityExtension) return { resolved_objects: resolvedObjects }; + if (!securityExtension) { + return { resolved_objects: resolvedObjects }; + } - const redactedObjects = await securityExtension?.authorizeAndRedactInternalBulkResolve({ + const redactedObjects = await securityExtension.authorizeAndRedactInternalBulkResolve({ namespace, objects: resolvedObjects, }); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/resolve.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/resolve.test.ts index 25acc55cc77c2..957dd69af06ee 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/resolve.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/resolve.test.ts @@ -86,7 +86,8 @@ describe('SavedObjectsRepository', () => { await expect(repository.resolve('obj-type', 'obj-id')).resolves.toEqual(expectedResult); expect(mockInternalBulkResolve).toHaveBeenCalledTimes(1); expect(mockInternalBulkResolve).toHaveBeenCalledWith( - expect.objectContaining({ objects: [{ type: 'obj-type', id: 'obj-id' }] }) + expect.objectContaining({ objects: [{ type: 'obj-type', id: 'obj-id' }] }), + expect.any(Object) ); }); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/resolve.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/resolve.ts index 50de472546344..6e940dac047bb 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/resolve.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/apis/resolve.ts @@ -24,35 +24,21 @@ export const performResolve = async ( { type, id, options }: PerformCreateParams, apiExecutionContext: ApiExecutionContext ): Promise> => { - const { - registry, - helpers, - allowedTypes, - client, - migrator, - serializer, - extensions = {}, - } = apiExecutionContext; - const { common: commonHelper } = helpers; - const { securityExtension, encryptionExtension } = extensions; + const { common: commonHelper } = apiExecutionContext.helpers; const namespace = commonHelper.getCurrentNamespace(options.namespace); - const { resolved_objects: bulkResults } = await internalBulkResolve({ - registry, - allowedTypes, - client, - migrator, - serializer, - getIndexForType: commonHelper.getIndexForType.bind(commonHelper), - incrementCounterInternal: (t, i, counterFields, opts = {}) => - incrementCounterInternal( - { type: t, id: i, counterFields, options: opts }, - apiExecutionContext - ), - encryptionExtension, - securityExtension, - objects: [{ type, id }], - options: { ...options, namespace }, - }); + const { resolved_objects: bulkResults } = await internalBulkResolve( + { + objects: [{ type, id }], + options: { ...options, namespace }, + incrementCounterInternal: (t, i, counterFields, opts = {}) => + incrementCounterInternal( + { type: t, id: i, counterFields, options: opts }, + apiExecutionContext + ), + }, + apiExecutionContext + ); + const [result] = bulkResults; if (isBulkResolveError(result)) { throw result.error; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.spaces_extension.test.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.spaces_extension.test.ts index 82a7d2930f8d5..ec5fe1d4b25de 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.spaces_extension.test.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/repository.spaces_extension.test.ts @@ -518,7 +518,8 @@ describe('SavedObjectsRepository Spaces Extension', () => { ? currentSpace.expectedNamespace : undefined, }, - }) + }), + expect.any(Object) ); }); }); @@ -764,7 +765,8 @@ describe('SavedObjectsRepository Spaces Extension', () => { ? `${currentSpace.expectedNamespace}` : undefined, }, - }) + }), + expect.any(Object) ); }); }); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/create_helpers.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/create_helpers.ts index 17a17be122916..087f3690886b1 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/create_helpers.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/lib/utils/create_helpers.ts @@ -78,6 +78,7 @@ export const createRepositoryHelpers = ({ }); const migrationHelper = new MigrationHelper({ migrator, + encryptionHelper, }); const helpers: RepositoryHelpers = { diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/api_context.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/api_context.mock.ts index 3b4da315868fa..22caaaa56a714 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/api_context.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/api_context.mock.ts @@ -28,7 +28,11 @@ export type ApiExecutionContextMock = Pick { +const createApiExecutionContextMock = ({ + allowedTypes = ['foo', 'bar'], +}: { + allowedTypes?: string[]; +} = {}): ApiExecutionContextMock => { return { registry: new SavedObjectTypeRegistry(), helpers: apiHelperMocks.create(), @@ -37,7 +41,7 @@ const createApiExecutionContextMock = (): ApiExecutionContextMock => { serializer: serializerMock.create(), migrator: createMigratorMock(), logger: loggerMock.create(), - allowedTypes: ['foo', 'bar'], + allowedTypes, mappings: { properties: { mockMappings: { type: 'text' } } }, }; }; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/api_helpers.mocks.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/api_helpers.mocks.ts index e50cc4d1036eb..d284bddd5c060 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/api_helpers.mocks.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/api_helpers.mocks.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import { SavedObject } from '@kbn/core-saved-objects-server'; import type { PublicMethodsOf } from '@kbn/utility-types'; import type { CommonHelper, @@ -22,10 +23,14 @@ const createMigrationHelperMock = (): MigrationHelperMock => { const mock: MigrationHelperMock = { migrateInputDocument: jest.fn(), migrateStorageDocument: jest.fn(), + migrateAndDecryptStorageDocument: jest.fn(), }; mock.migrateInputDocument.mockImplementation((doc) => doc); mock.migrateStorageDocument.mockImplementation((doc) => doc); + mock.migrateAndDecryptStorageDocument.mockImplementation(({ document }) => + Promise.resolve(document as SavedObject) + ); return mock; }; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/helpers.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/helpers.ts new file mode 100644 index 0000000000000..5d05cd65b9e27 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/helpers.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. + */ + +import type { IEncryptionHelper } from '../lib/apis/helpers/encryption'; + +export type IEncryptionHelperMock = jest.Mocked; + +export const createEncryptionHelperMock = (): IEncryptionHelperMock => { + const mock: IEncryptionHelperMock = { + optionallyEncryptAttributes: jest.fn(), + optionallyDecryptAndRedactSingleResult: jest.fn(), + optionallyDecryptAndRedactBulkResult: jest.fn(), + }; + + return mock; +}; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/index.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/index.ts index 22569e9437895..852e7a2f9dd52 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/index.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/index.ts @@ -19,3 +19,5 @@ export { type PreflightCheckHelperMock, } from './api_helpers.mocks'; export { apiContextMock, type ApiExecutionContextMock } from './api_context.mock'; +export { createDocumentMigratorMock, createMigratorMock } from './migrator.mock'; +export { createEncryptionHelperMock } from './helpers'; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/kibana_migrator.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/kibana_migrator.mock.ts index e2c7107ca380c..a896f0934901d 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/kibana_migrator.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/kibana_migrator.mock.ts @@ -8,6 +8,7 @@ import type { SavedObjectsType } from '@kbn/core-saved-objects-server'; import type { IKibanaMigrator } from '@kbn/core-saved-objects-base-server-internal'; +import { createDocumentMigratorMock } from './migrator.mock'; // mock duplicated from `@kbn/core/saved-objects-migration-server-mocks` to avoid cyclic dependencies @@ -39,6 +40,7 @@ const createMigratorMock = ( migrateDocument: jest.fn(), prepareMigrations: jest.fn(), getStatus$: jest.fn(), + getDocumentMigrator: jest.fn().mockReturnValue(createDocumentMigratorMock()), }; // mockMigrator.getActiveMappings.mockReturnValue(buildActiveMappings(mergeTypes(types))); diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/migrator.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/migrator.mock.ts index 94f221e7cfbc8..898259312628a 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/migrator.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/migrator.mock.ts @@ -6,7 +6,10 @@ * Side Public License, v 1. */ -import type { IKibanaMigrator } from '@kbn/core-saved-objects-base-server-internal'; +import type { + IKibanaMigrator, + IDocumentMigrator, +} from '@kbn/core-saved-objects-base-server-internal'; export type KibanaMigratorMock = jest.Mocked; @@ -18,5 +21,16 @@ export const createMigratorMock = (kibanaVersion: string = '8.0.0'): KibanaMigra getStatus$: jest.fn(), getActiveMappings: jest.fn(), migrateDocument: jest.fn(), + getDocumentMigrator: jest.fn().mockReturnValue(createDocumentMigratorMock()), + }; +}; + +export type DocumentMigratorMock = jest.Mocked; + +export const createDocumentMigratorMock = (): DocumentMigratorMock => { + return { + migrate: jest.fn().mockImplementation((doc: unknown) => doc), + migrateAndConvert: jest.fn().mockImplementation((doc: unknown) => doc), + isDowngradeRequired: jest.fn().mockReturnValue(false), }; }; diff --git a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/saved_objects_extensions.mock.ts b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/saved_objects_extensions.mock.ts index 6f7fb8299291e..3d9c3f91efa09 100644 --- a/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/saved_objects_extensions.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-api-server-internal/src/mocks/saved_objects_extensions.mock.ts @@ -10,7 +10,6 @@ import type { ISavedObjectsEncryptionExtension, ISavedObjectsSecurityExtension, ISavedObjectsSpacesExtension, - SavedObjectsExtensions, } from '@kbn/core-saved-objects-server'; const createEncryptionExtension = (): jest.Mocked => ({ @@ -47,7 +46,7 @@ const createSpacesExtension = (): jest.Mocked => ( getSearchableNamespaces: jest.fn(), }); -const create = (): jest.Mocked => ({ +const create = () => ({ encryptionExtension: createEncryptionExtension(), securityExtension: createSecurityExtension(), spacesExtension: createSpacesExtension(), diff --git a/packages/core/saved-objects/core-saved-objects-base-server-internal/index.ts b/packages/core/saved-objects/core-saved-objects-base-server-internal/index.ts index 2a3535f19207c..6eef9105198bf 100644 --- a/packages/core/saved-objects/core-saved-objects-base-server-internal/index.ts +++ b/packages/core/saved-objects/core-saved-objects-base-server-internal/index.ts @@ -41,6 +41,9 @@ export type { MigrationResult, MigrationStatus, MigrateDocumentOptions, + IDocumentMigrator, + DocumentMigrateOptions, + IsDowngradeRequiredOptions, } from './src/migration'; export { parseObjectKey, diff --git a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts new file mode 100644 index 0000000000000..bdbd78e717520 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/document_migrator.ts @@ -0,0 +1,67 @@ +/* + * 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 { SavedObjectUnsanitizedDoc } from '@kbn/core-saved-objects-server'; + +/** + * Manages transformations of individual documents. + */ +export interface IDocumentMigrator { + /** + * Migrates a document to its latest version. + */ + migrate( + doc: SavedObjectUnsanitizedDoc, + options?: DocumentMigrateOptions + ): SavedObjectUnsanitizedDoc; + + /** + * Migrates a document to the latest version and applies type conversions if applicable. + * Also returns any additional document(s) that may have been created during the transformation process. + * + * @remark This only be used by the savedObject migration during upgrade. For all other scenarios, + * {@link IDocumentMigrator#migrate} should be used instead. + */ + migrateAndConvert(doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc[]; + + /** + * Returns true if the provided document has a higher version that the `targetTypeVersion` + * (defaulting to the last known version), false otherwise. + */ + isDowngradeRequired( + doc: SavedObjectUnsanitizedDoc, + options?: IsDowngradeRequiredOptions + ): boolean; +} + +/** + * Options for {@link IDocumentMigrator.migrate} + */ +export interface DocumentMigrateOptions { + /** + * Defines whether it is allowed to convert documents from an higher version or not. + * - If `true`, documents from higher versions will go though the downgrade pipeline. + * - If `false`, an error will be thrown when trying to process a document with an higher type version. + * Defaults to `false`. + */ + allowDowngrade?: boolean; + /** + * If specified, will migrate to the given version instead of the latest known version. + */ + targetTypeVersion?: string; +} + +/** + * Options for {@link IDocumentMigrator.isDowngradeRequired} + */ +export interface IsDowngradeRequiredOptions { + /** + * If specified, will migrate to the given version instead of the latest known version. + */ + targetTypeVersion?: string; +} diff --git a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/index.ts b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/index.ts index aa54e37f0d91a..0c4c87a3d3fbb 100644 --- a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/index.ts +++ b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/index.ts @@ -13,3 +13,8 @@ export type { MigrationResult, MigrateDocumentOptions, } from './kibana_migrator'; +export type { + IDocumentMigrator, + DocumentMigrateOptions, + IsDowngradeRequiredOptions, +} from './document_migrator'; diff --git a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/kibana_migrator.ts b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/kibana_migrator.ts index 18a03a7fcbf54..723d5724024fc 100644 --- a/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/kibana_migrator.ts +++ b/packages/core/saved-objects/core-saved-objects-base-server-internal/src/migration/kibana_migrator.ts @@ -9,6 +9,7 @@ import { Observable } from 'rxjs'; import type { SavedObjectUnsanitizedDoc } from '@kbn/core-saved-objects-server'; import type { IndexMapping } from '../mappings'; +import type { IDocumentMigrator } from './document_migrator'; /** @internal */ export interface IKibanaMigrator { @@ -53,6 +54,11 @@ export interface IKibanaMigrator { doc: SavedObjectUnsanitizedDoc, options?: MigrateDocumentOptions ): SavedObjectUnsanitizedDoc; + + /** + * Returns the document migrator bound to this kibana migrator. + */ + getDocumentMigrator(): IDocumentMigrator; } /** diff --git a/packages/core/saved-objects/core-saved-objects-base-server-mocks/index.ts b/packages/core/saved-objects/core-saved-objects-base-server-mocks/index.ts index 9700eb0f0f3cb..51ad9cfa5e4d5 100644 --- a/packages/core/saved-objects/core-saved-objects-base-server-mocks/index.ts +++ b/packages/core/saved-objects/core-saved-objects-base-server-mocks/index.ts @@ -8,3 +8,4 @@ export { typeRegistryMock } from './src/saved_objects_type_registry.mock'; export { serializerMock } from './src/serializer.mock'; +export { createDocumentMigratorMock } from './src/document_migrator.mock'; diff --git a/packages/core/saved-objects/core-saved-objects-base-server-mocks/src/document_migrator.mock.ts b/packages/core/saved-objects/core-saved-objects-base-server-mocks/src/document_migrator.mock.ts new file mode 100644 index 0000000000000..e293fb30b2284 --- /dev/null +++ b/packages/core/saved-objects/core-saved-objects-base-server-mocks/src/document_migrator.mock.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 type { IDocumentMigrator } from '@kbn/core-saved-objects-base-server-internal'; + +export const createDocumentMigratorMock = (): jest.Mocked => { + return { + migrate: jest.fn().mockImplementation((doc: unknown) => doc), + migrateAndConvert: jest.fn().mockImplementation((doc: unknown) => doc), + isDowngradeRequired: jest.fn().mockReturnValue(false), + }; +}; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migrate_raw_docs.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migrate_raw_docs.ts index 26e843ad99412..0b30ea2b0fe2d 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migrate_raw_docs.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/core/migrate_raw_docs.ts @@ -17,10 +17,10 @@ import type { SavedObjectUnsanitizedDoc, ISavedObjectsSerializer, } from '@kbn/core-saved-objects-server'; -import type { VersionedTransformer } from '../document_migrator'; +import type { IDocumentMigrator } from '@kbn/core-saved-objects-base-server-internal'; import { TransformSavedObjectDocumentError } from '.'; -type MigrateAndConvertFn = VersionedTransformer['migrateAndConvert']; +type MigrateAndConvertFn = IDocumentMigrator['migrateAndConvert']; export interface DocumentsTransformFailed { readonly type: string; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts index 540f8e39b4671..d2dff051a5f53 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/document_migrator.ts @@ -13,6 +13,11 @@ import type { SavedObjectUnsanitizedDoc, ISavedObjectTypeRegistry, } from '@kbn/core-saved-objects-server'; +import type { + IDocumentMigrator, + DocumentMigrateOptions, + IsDowngradeRequiredOptions, +} from '@kbn/core-saved-objects-base-server-internal'; import type { ActiveMigrations } from './types'; import { maxVersion } from './pipelines/utils'; import { buildActiveMigrations } from './build_active_migrations'; @@ -20,23 +25,6 @@ import { DocumentUpgradePipeline, DocumentDowngradePipeline } from './pipelines' import { downgradeRequired } from './utils'; import { TransformType } from './types'; -/** - * Options for {@link VersionedTransformer.migrate} - */ -export interface DocumentMigrateOptions { - /** - * Defines whether it is allowed to convert documents from an higher version or not. - * - If `true`, documents from higher versions will go though the downgrade pipeline. - * - If `false`, an error will be thrown when trying to process a document with an higher type version. - * Defaults to `false`. - */ - allowDowngrade?: boolean; - /** - * If specified, will migrate to the given version instead of the latest known version. - */ - targetTypeVersion?: string; -} - interface TransformOptions { convertNamespaceTypes?: boolean; allowDowngrade?: boolean; @@ -65,31 +53,9 @@ interface MigrationVersionParams { } /** - * Manages transformations of individual documents. + * A concrete implementation of the {@link IDocumentMigrator} interface. */ -export interface VersionedTransformer { - /** - * Migrates a document to its latest version. - */ - migrate( - doc: SavedObjectUnsanitizedDoc, - options?: DocumentMigrateOptions - ): SavedObjectUnsanitizedDoc; - - /** - * Migrates a document to the latest version and applies type conversions if applicable. - * Also returns any additional document(s) that may have been created during the transformation process. - * - * @remark This only be used by the savedObject migration during upgrade. For all other scenarios, - * {@link VersionedTransformer#migrate} should be used instead. - */ - migrateAndConvert(doc: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc[]; -} - -/** - * A concrete implementation of the {@link VersionedTransformer} interface. - */ -export class DocumentMigrator implements VersionedTransformer { +export class DocumentMigrator implements IDocumentMigrator { private options: DocumentMigratorOptions; private migrations?: ActiveMigrations; @@ -175,6 +141,21 @@ export class DocumentMigrator implements VersionedTransformer { return [document, ...additionalDocs]; } + /** + * Returns true if the provided document has a higher version that the `targetTypeVersion` + * (defaulting to the last known version), false otherwise. + */ + public isDowngradeRequired( + doc: SavedObjectUnsanitizedDoc, + { targetTypeVersion }: IsDowngradeRequiredOptions = {} + ): boolean { + if (!this.migrations) { + throw new Error('Migrations are not ready. Make sure prepareMigrations is called first.'); + } + const typeMigrations = this.migrations[doc.type]; + return downgradeRequired(doc, typeMigrations?.latestVersion ?? {}, targetTypeVersion); + } + private transform( doc: SavedObjectUnsanitizedDoc, { diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/index.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/index.ts index f34053388d764..daaffc617f611 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/index.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/index.ts @@ -6,4 +6,4 @@ * Side Public License, v 1. */ -export { DocumentMigrator, type VersionedTransformer } from './document_migrator'; +export { DocumentMigrator } from './document_migrator'; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.ts index 89766a7daf549..d0ee368520160 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/model_version.ts @@ -97,7 +97,7 @@ export const convertModelVersionTransformFn = ({ const result = modelTransformFn(doc, context); return { transformedDoc: result.document, additionalDocs: [] }; } catch (error) { - log.error(error); + log.error(`Error trying to transform document: ${error.message}`); throw new TransformSavedObjectDocumentError(error, virtualVersion); } }; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts index a111fc663e5da..95d6c2d9064ef 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/document_migrator/utils.ts @@ -56,7 +56,7 @@ export function convertMigrationFunction( return { transformedDoc: result, additionalDocs: [] }; } catch (error) { - log.error(error); + log.error(`Error trying to transform document: ${error.message}`); throw new TransformSavedObjectDocumentError(error, version); } }; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts index c06461da8fb43..a07d810ee75ab 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/kibana_migrator.ts @@ -119,6 +119,10 @@ export class KibanaMigrator implements IKibanaMigrator { this.esCapabilities = esCapabilities; } + public getDocumentMigrator() { + return this.documentMigrator; + } + public runMigrations({ rerun = false }: { rerun?: boolean } = {}): Promise { if (this.migrationResult === undefined || rerun) { // Reruns are only used by CI / EsArchiver. Publishing status updates on reruns results in slowing down CI diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/context/types.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/context/types.ts index 3515d8a01a5a0..060bd0ebdde51 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/context/types.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/context/types.ts @@ -18,9 +18,9 @@ import type { import type { VirtualVersionMap, SavedObjectsMigrationConfigType, + IDocumentMigrator, } from '@kbn/core-saved-objects-base-server-internal'; import type { DocLinks } from '@kbn/doc-links'; -import { VersionedTransformer } from '../../document_migrator'; /** * The set of static, precomputed values and services used by the ZDT migration @@ -45,7 +45,7 @@ export interface MigratorContext { /** SO serializer to use for migration */ readonly serializer: ISavedObjectsSerializer; /** The doc migrator to use */ - readonly documentMigrator: VersionedTransformer; + readonly documentMigrator: IDocumentMigrator; /** The SO type registry to use for the migration */ readonly typeRegistry: ISavedObjectTypeRegistry; /** List of types that are no longer registered */ diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/migrate_index.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/migrate_index.ts index 1ee07de5e0395..d2d9c699566d3 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/migrate_index.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/migrate_index.ts @@ -10,9 +10,10 @@ import type { ElasticsearchClient, ElasticsearchCapabilities, } from '@kbn/core-elasticsearch-server'; -import { - type SavedObjectsMigrationConfigType, - type MigrationResult, +import type { + SavedObjectsMigrationConfigType, + MigrationResult, + IDocumentMigrator, } from '@kbn/core-saved-objects-base-server-internal'; import type { ISavedObjectTypeRegistry, @@ -22,7 +23,6 @@ import type { Logger } from '@kbn/logging'; import type { DocLinksServiceStart } from '@kbn/core-doc-links-server'; import { NodeRoles } from '@kbn/core-node-server'; import { migrationStateActionMachine } from './migration_state_action_machine'; -import type { VersionedTransformer } from '../document_migrator'; import { createContext } from './context'; import { next } from './next'; import { model } from './model'; @@ -37,7 +37,7 @@ export interface MigrateIndexOptions { /** Logger to use for migration output */ logger: Logger; /** The document migrator to use to convert the document */ - documentMigrator: VersionedTransformer; + documentMigrator: IDocumentMigrator; /** The migration config to use for the migration */ migrationConfig: SavedObjectsMigrationConfigType; /** docLinks contract to use to link to documentation */ diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/run_zdt_migration.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/run_zdt_migration.ts index e8309f8d4d539..cb9d1656707c7 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/run_zdt_migration.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/run_zdt_migration.ts @@ -17,11 +17,11 @@ import type { ISavedObjectTypeRegistry, ISavedObjectsSerializer, } from '@kbn/core-saved-objects-server'; -import { - type SavedObjectsMigrationConfigType, - type MigrationResult, +import type { + SavedObjectsMigrationConfigType, + MigrationResult, + IDocumentMigrator, } from '@kbn/core-saved-objects-base-server-internal'; -import type { VersionedTransformer } from '../document_migrator'; import { buildMigratorConfigs } from './utils'; import { migrateIndex } from './migrate_index'; @@ -35,7 +35,7 @@ export interface RunZeroDowntimeMigrationOpts { /** Logger to use for migration output */ logger: Logger; /** The document migrator to use to convert the document */ - documentMigrator: VersionedTransformer; + documentMigrator: IDocumentMigrator; /** The migration config to use for the migration */ migrationConfig: SavedObjectsMigrationConfigType; /** docLinks contract to use to link to documentation */ diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/test_helpers/document_migrator.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/test_helpers/document_migrator.ts index 3dbe48ab2d4e9..dba89f2aacb1b 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/test_helpers/document_migrator.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/test_helpers/document_migrator.ts @@ -6,11 +6,12 @@ * Side Public License, v 1. */ -import type { VersionedTransformer } from '../../document_migrator'; +import type { IDocumentMigrator } from '@kbn/core-saved-objects-base-server-internal'; -export const createDocumentMigrator = (): jest.Mocked => { +export const createDocumentMigrator = (): jest.Mocked => { return { migrate: jest.fn().mockImplementation((doc: unknown) => doc), migrateAndConvert: jest.fn().mockImplementation((doc: unknown) => [doc]), + isDowngradeRequired: jest.fn().mockReturnValue(false), }; }; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/utils/transform_raw_docs.ts b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/utils/transform_raw_docs.ts index 1af1cee9d3b84..11df2574f1e94 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/utils/transform_raw_docs.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-internal/src/zdt/utils/transform_raw_docs.ts @@ -7,13 +7,13 @@ */ import type { ISavedObjectsSerializer, SavedObjectsRawDoc } from '@kbn/core-saved-objects-server'; -import { VersionedTransformer } from '../../document_migrator'; +import type { IDocumentMigrator } from '@kbn/core-saved-objects-base-server-internal'; import { TransformRawDocs } from '../../types'; import { migrateRawDocsSafely } from '../../core/migrate_raw_docs'; export interface CreateDocumentTransformFnOpts { serializer: ISavedObjectsSerializer; - documentMigrator: VersionedTransformer; + documentMigrator: IDocumentMigrator; } export const createDocumentTransformFn = ({ diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-mocks/src/kibana_migrator.mock.ts b/packages/core/saved-objects/core-saved-objects-migration-server-mocks/src/kibana_migrator.mock.ts index a0d7ac83fe74a..7801f71503931 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-mocks/src/kibana_migrator.mock.ts +++ b/packages/core/saved-objects/core-saved-objects-migration-server-mocks/src/kibana_migrator.mock.ts @@ -16,6 +16,7 @@ import { buildActiveMappings, buildTypesMappings, } from '@kbn/core-saved-objects-migration-server-internal'; +import { createDocumentMigratorMock } from '@kbn/core-saved-objects-base-server-mocks'; const defaultSavedObjectTypes: SavedObjectsType[] = [ { @@ -58,10 +59,13 @@ const createMigrator = ( ], }) ), + getDocumentMigrator: jest.fn(), }; mockMigrator.getActiveMappings.mockReturnValue(buildActiveMappings(buildTypesMappings(types))); mockMigrator.migrateDocument.mockImplementation((doc) => doc); + mockMigrator.getDocumentMigrator.mockReturnValue(createDocumentMigratorMock()); + return mockMigrator; }; diff --git a/packages/core/saved-objects/core-saved-objects-migration-server-mocks/tsconfig.json b/packages/core/saved-objects/core-saved-objects-migration-server-mocks/tsconfig.json index b228481a3207a..8d075d0a9e0b3 100644 --- a/packages/core/saved-objects/core-saved-objects-migration-server-mocks/tsconfig.json +++ b/packages/core/saved-objects/core-saved-objects-migration-server-mocks/tsconfig.json @@ -13,7 +13,8 @@ "kbn_references": [ "@kbn/core-saved-objects-server", "@kbn/core-saved-objects-base-server-internal", - "@kbn/core-saved-objects-migration-server-internal" + "@kbn/core-saved-objects-migration-server-internal", + "@kbn/core-saved-objects-base-server-mocks" ], "exclude": [ "target/**/*", diff --git a/packages/deeplinks/observability/constants.ts b/packages/deeplinks/observability/constants.ts index 9f2a28fcef971..f00fb24e40886 100644 --- a/packages/deeplinks/observability/constants.ts +++ b/packages/deeplinks/observability/constants.ts @@ -16,4 +16,6 @@ export const METRICS_APP_ID = 'metrics'; export const APM_APP_ID = 'apm'; +export const SYNTHETICS_APP_ID = 'synthetics'; + export const OBSERVABILITY_ONBOARDING_APP_ID = 'observabilityOnboarding'; diff --git a/packages/deeplinks/observability/deep_links.ts b/packages/deeplinks/observability/deep_links.ts index 831976bcc37ea..50082a1d41800 100644 --- a/packages/deeplinks/observability/deep_links.ts +++ b/packages/deeplinks/observability/deep_links.ts @@ -13,6 +13,7 @@ import { OBSERVABILITY_LOG_EXPLORER_APP_ID, OBSERVABILITY_ONBOARDING_APP_ID, OBSERVABILITY_OVERVIEW_APP_ID, + SYNTHETICS_APP_ID, } from './constants'; type LogsApp = typeof LOGS_APP_ID; @@ -20,6 +21,7 @@ type ObservabilityLogExplorerApp = typeof OBSERVABILITY_LOG_EXPLORER_APP_ID; type ObservabilityOverviewApp = typeof OBSERVABILITY_OVERVIEW_APP_ID; type MetricsApp = typeof METRICS_APP_ID; type ApmApp = typeof APM_APP_ID; +type SyntheticsApp = typeof SYNTHETICS_APP_ID; type ObservabilityOnboardingApp = typeof OBSERVABILITY_ONBOARDING_APP_ID; export type AppId = @@ -28,7 +30,8 @@ export type AppId = | ObservabilityOverviewApp | ObservabilityOnboardingApp | ApmApp - | MetricsApp; + | MetricsApp + | SyntheticsApp; export type LogsLinkId = 'log-categories' | 'settings' | 'anomalies' | 'stream'; @@ -51,11 +54,19 @@ export type ApmLinkId = | 'settings' | 'storage-explorer'; -export type LinkId = LogsLinkId | ObservabilityOverviewLinkId | MetricsLinkId | ApmLinkId; +export type SyntheticsLinkId = 'overview' | 'management'; + +export type LinkId = + | LogsLinkId + | ObservabilityOverviewLinkId + | MetricsLinkId + | ApmLinkId + | SyntheticsLinkId; export type DeepLinkId = | AppId | `${LogsApp}:${LogsLinkId}` | `${ObservabilityOverviewApp}:${ObservabilityOverviewLinkId}` | `${MetricsApp}:${MetricsLinkId}` - | `${ApmApp}:${ApmLinkId}`; + | `${ApmApp}:${ApmLinkId}` + | `${SyntheticsApp}:${SyntheticsLinkId}`; diff --git a/packages/kbn-alerting-types/alert_type.ts b/packages/kbn-alerting-types/alert_type.ts new file mode 100644 index 0000000000000..61746aaaa14f6 --- /dev/null +++ b/packages/kbn-alerting-types/alert_type.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 { TechnicalRuleDataFieldName } from '@kbn/rule-data-utils'; + +export interface BasicFields { + _id: string; + _index: string; +} + +export type Alert = BasicFields & { + [Property in TechnicalRuleDataFieldName]?: string[]; +} & { + [x: string]: unknown[]; +}; diff --git a/packages/kbn-alerting-types/index.ts b/packages/kbn-alerting-types/index.ts index f260374c13183..6d63366f4343d 100644 --- a/packages/kbn-alerting-types/index.ts +++ b/packages/kbn-alerting-types/index.ts @@ -9,3 +9,4 @@ export * from './builtin_action_groups_types'; export * from './rule_type'; export * from './action_group_types'; +export * from './alert_type'; diff --git a/packages/kbn-alerting-types/tsconfig.json b/packages/kbn-alerting-types/tsconfig.json index 049d2ef8d89b1..911e35551bbbd 100644 --- a/packages/kbn-alerting-types/tsconfig.json +++ b/packages/kbn-alerting-types/tsconfig.json @@ -18,5 +18,6 @@ "kbn_references": [ "@kbn/i18n", "@kbn/licensing-plugin", + "@kbn/rule-data-utils" ] } diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/create_schema_from_field_map.ts b/packages/kbn-alerts-as-data-utils/src/schemas/create_schema_from_field_map.ts index e2d45b876fb57..1ae0979f03f3f 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/create_schema_from_field_map.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/create_schema_from_field_map.ts @@ -322,6 +322,7 @@ export const schemaGeoPoint = rt.union([ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const %%schemaPrefix%%Required = %%REQUIRED_FIELDS%%; +// prettier-ignore const %%schemaPrefix%%Optional = %%OPTIONAL_FIELDS%%; // prettier-ignore diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/alert_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/alert_schema.ts index 5625460f269b4..b183ca5c792f8 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/alert_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/alert_schema.ts @@ -80,6 +80,7 @@ const AlertRequired = rt.type({ 'kibana.alert.uuid': schemaString, 'kibana.space_ids': schemaStringArray, }); +// prettier-ignore const AlertOptional = rt.partial({ 'event.action': schemaString, 'event.kind': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts new file mode 100644 index 0000000000000..919483f6c79f0 --- /dev/null +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/default_schema.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +// ---------------------------------- WARNING ---------------------------------- +// this file was generated, and should not be edited by hand +// ---------------------------------- WARNING ---------------------------------- +import * as rt from 'io-ts'; +import { Either } from 'fp-ts/lib/Either'; +import { AlertSchema } from './alert_schema'; +const ISO_DATE_PATTERN = /^d{4}-d{2}-d{2}Td{2}:d{2}:d{2}.d{3}Z$/; +export const IsoDateString = new rt.Type( + 'IsoDateString', + rt.string.is, + (input, context): Either => { + if (typeof input === 'string' && ISO_DATE_PATTERN.test(input)) { + return rt.success(input); + } else { + return rt.failure(input, context); + } + }, + rt.identity +); +export type IsoDateStringC = typeof IsoDateString; +export const schemaUnknown = rt.unknown; +export const schemaUnknownArray = rt.array(rt.unknown); +export const schemaString = rt.string; +export const schemaStringArray = rt.array(schemaString); +export const schemaNumber = rt.number; +export const schemaNumberArray = rt.array(schemaNumber); +export const schemaDate = rt.union([IsoDateString, schemaNumber]); +export const schemaDateArray = rt.array(schemaDate); +export const schemaDateRange = rt.partial({ + gte: schemaDate, + lte: schemaDate, +}); +export const schemaDateRangeArray = rt.array(schemaDateRange); +export const schemaStringOrNumber = rt.union([schemaString, schemaNumber]); +export const schemaStringOrNumberArray = rt.array(schemaStringOrNumber); +export const schemaBoolean = rt.boolean; +export const schemaBooleanArray = rt.array(schemaBoolean); +const schemaGeoPointCoords = rt.type({ + type: schemaString, + coordinates: schemaNumberArray, +}); +const schemaGeoPointString = schemaString; +const schemaGeoPointLatLon = rt.type({ + lat: schemaNumber, + lon: schemaNumber, +}); +const schemaGeoPointLocation = rt.type({ + location: schemaNumberArray, +}); +const schemaGeoPointLocationString = rt.type({ + location: schemaString, +}); +export const schemaGeoPoint = rt.union([ + schemaGeoPointCoords, + schemaGeoPointString, + schemaGeoPointLatLon, + schemaGeoPointLocation, + schemaGeoPointLocationString, +]); +export const schemaGeoPointArray = rt.array(schemaGeoPoint); +// prettier-ignore +const DefaultAlertRequired = rt.type({ +}); +// prettier-ignore +const DefaultAlertOptional = rt.partial({ +}); + +// prettier-ignore +export const DefaultAlertSchema = rt.intersection([DefaultAlertRequired, DefaultAlertOptional, AlertSchema]); +// prettier-ignore +export type DefaultAlert = rt.TypeOf; diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/ecs_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/ecs_schema.ts index b3bc0eb161720..2852039b1a9dd 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/ecs_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/ecs_schema.ts @@ -70,6 +70,7 @@ const EcsRequired = rt.type({ '@timestamp': schemaDate, 'ecs.version': schemaString, }); +// prettier-ignore const EcsOptional = rt.partial({ 'agent.build.original': schemaString, 'agent.ephemeral_id': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/legacy_alert_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/legacy_alert_schema.ts index faecf4c0252ca..a2031b0468cf5 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/legacy_alert_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/legacy_alert_schema.ts @@ -68,6 +68,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const LegacyAlertRequired = rt.type({ }); +// prettier-ignore const LegacyAlertOptional = rt.partial({ 'ecs.version': schemaString, 'kibana.alert.risk_score': schemaNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/ml_anomaly_detection_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/ml_anomaly_detection_schema.ts index 591a51b2fec57..e5dd543f17f23 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/ml_anomaly_detection_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/ml_anomaly_detection_schema.ts @@ -69,6 +69,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); const MlAnomalyDetectionAlertRequired = rt.type({ 'kibana.alert.job_id': schemaString, }); +// prettier-ignore const MlAnomalyDetectionAlertOptional = rt.partial({ 'kibana.alert.anomaly_score': schemaNumber, 'kibana.alert.anomaly_timestamp': schemaDate, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_apm_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_apm_schema.ts index 41431d4581aa9..eb69b9a5e3250 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_apm_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_apm_schema.ts @@ -69,6 +69,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilityApmAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilityApmAlertOptional = rt.partial({ 'agent.name': schemaString, 'error.grouping_key': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_logs_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_logs_schema.ts index dd87a5b0e6c9d..373b0af5b32a2 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_logs_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_logs_schema.ts @@ -70,6 +70,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilityLogsAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilityLogsAlertOptional = rt.partial({ 'kibana.alert.context': schemaUnknown, 'kibana.alert.evaluation.threshold': schemaStringOrNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_metrics_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_metrics_schema.ts index 2e34e72f88257..7b26dc924e2fb 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_metrics_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_metrics_schema.ts @@ -70,6 +70,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilityMetricsAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilityMetricsAlertOptional = rt.partial({ 'kibana.alert.context': schemaUnknown, 'kibana.alert.evaluation.threshold': schemaStringOrNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_slo_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_slo_schema.ts index 523e79ecf07a9..0485ccaa93318 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_slo_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_slo_schema.ts @@ -69,6 +69,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilitySloAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilitySloAlertOptional = rt.partial({ 'kibana.alert.context': schemaUnknown, 'kibana.alert.evaluation.threshold': schemaStringOrNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_uptime_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_uptime_schema.ts index d8693417f77dc..1401cdda70f1c 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_uptime_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/observability_uptime_schema.ts @@ -69,6 +69,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const ObservabilityUptimeAlertRequired = rt.type({ }); +// prettier-ignore const ObservabilityUptimeAlertOptional = rt.partial({ 'agent.name': schemaString, 'anomaly.bucket_span.minutes': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/security_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/security_schema.ts index 1d141def7f511..fb9277abb884d 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/security_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/security_schema.ts @@ -117,6 +117,7 @@ const SecurityAlertRequired = rt.type({ 'kibana.alert.uuid': schemaString, 'kibana.space_ids': schemaStringArray, }); +// prettier-ignore const SecurityAlertOptional = rt.partial({ 'ecs.version': schemaString, 'event.action': schemaString, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/generated/stack_schema.ts b/packages/kbn-alerts-as-data-utils/src/schemas/generated/stack_schema.ts index 1588963385834..94ba544e4c96f 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/generated/stack_schema.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/generated/stack_schema.ts @@ -68,6 +68,7 @@ export const schemaGeoPointArray = rt.array(schemaGeoPoint); // prettier-ignore const StackAlertRequired = rt.type({ }); +// prettier-ignore const StackAlertOptional = rt.partial({ 'kibana.alert.evaluation.conditions': schemaString, 'kibana.alert.evaluation.threshold': schemaStringOrNumber, diff --git a/packages/kbn-alerts-as-data-utils/src/schemas/index.ts b/packages/kbn-alerts-as-data-utils/src/schemas/index.ts index 28da937087cf1..9a56c90682016 100644 --- a/packages/kbn-alerts-as-data-utils/src/schemas/index.ts +++ b/packages/kbn-alerts-as-data-utils/src/schemas/index.ts @@ -14,6 +14,7 @@ import type { ObservabilitySloAlert } from './generated/observability_slo_schema import type { ObservabilityUptimeAlert } from './generated/observability_uptime_schema'; import type { SecurityAlert } from './generated/security_schema'; import type { MlAnomalyDetectionAlert } from './generated/ml_anomaly_detection_schema'; +import type { DefaultAlert } from './generated/default_schema'; export * from './create_schema_from_field_map'; @@ -26,6 +27,7 @@ export type { ObservabilityUptimeAlert } from './generated/observability_uptime_ export type { SecurityAlert } from './generated/security_schema'; export type { StackAlert } from './generated/stack_schema'; export type { MlAnomalyDetectionAlert } from './generated/ml_anomaly_detection_schema'; +export type { DefaultAlert } from './generated/default_schema'; export type AADAlert = | Alert @@ -35,4 +37,5 @@ export type AADAlert = | ObservabilitySloAlert | ObservabilityUptimeAlert | SecurityAlert - | MlAnomalyDetectionAlert; + | MlAnomalyDetectionAlert + | DefaultAlert; diff --git a/packages/kbn-alerts-ui-shared/index.ts b/packages/kbn-alerts-ui-shared/index.ts index 3dd1174da4129..25ef9bf8a66ca 100644 --- a/packages/kbn-alerts-ui-shared/index.ts +++ b/packages/kbn-alerts-ui-shared/index.ts @@ -15,3 +15,5 @@ export * from './src/alerts_search_bar/hooks'; export * from './src/alerts_search_bar/apis'; export { AlertsSearchBar } from './src/alerts_search_bar'; export type { AlertsSearchBarProps } from './src/alerts_search_bar/types'; + +export * from './src/alert_fields_table'; diff --git a/packages/kbn-alerts-ui-shared/src/alert_fields_table/index.test.tsx b/packages/kbn-alerts-ui-shared/src/alert_fields_table/index.test.tsx new file mode 100644 index 0000000000000..e930faa7acc0a --- /dev/null +++ b/packages/kbn-alerts-ui-shared/src/alert_fields_table/index.test.tsx @@ -0,0 +1,100 @@ +/* + * 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 { AlertFieldsTable, AlertFieldsTableProps } from '.'; +import { mount, ReactWrapper } from 'enzyme'; + +describe('AlertFieldsTable', () => { + const defaultProps = { + alert: { + 'kibana.alert.status': ['active'], + 'kibana.alert.url': ['ALERT_URL'], + 'kibana.alert.evaluation.conditions': [ + 'Number of matching documents is NOT greater than 1000', + ], + 'kibana.alert.rule.producer': ['stackAlerts'], + 'kibana.alert.reason.text': [ + 'Document count is 0 in the last 5m in metrics-* data view. Alert when greater than 1000.', + ], + 'kibana.alert.rule.rule_type_id': ['.es-query'], + 'kibana.alert.evaluation.value': ['0'], + 'kibana.alert.instance.id': ['query matched'], + 'kibana.alert.flapping': [true], + 'kibana.alert.rule.name': ['Test rule'], + 'event.kind': ['signal'], + 'kibana.alert.title': ["rule 'Test rule' recovered"], + 'kibana.alert.workflow_status': ['open'], + 'kibana.alert.rule.uuid': ['313b0cfb-3455-41da-aff9-cee2bc9637f1'], + 'kibana.alert.time_range': [ + { + gte: '1703241047013', + }, + ], + 'kibana.alert.flapping_history': [false], + 'kibana.alert.reason': [ + 'Document count is 0 in the last 5m in metrics-* data view. Alert when greater than 1000.', + ], + 'kibana.alert.rule.consumer': ['infrastructure'], + 'kibana.alert.action_group': ['query matched'], + 'kibana.alert.rule.category': ['Elasticsearch query'], + 'kibana.alert.start': ['2023-12-22T10:30:47.013Z'], + 'event.action': ['active'], + '@timestamp': ['2023-12-22T10:32:53.036Z'], + 'kibana.alert.duration.us': [126023000], + 'kibana.alert.rule.execution.uuid': ['ffcc5773-a4cc-48be-a265-9b16f85f4e62'], + 'kibana.alert.uuid': ['93377bf3-d837-425d-b63f-97a8a5ae8054'], + 'kibana.space_ids': ['default'], + 'kibana.version': ['8.13.0'], + 'kibana.alert.evaluation.threshold': [1000], + 'kibana.alert.rule.parameters': [ + { + searchConfiguration: { + query: { + language: 'kuery', + query: '', + }, + index: '8e29356e-9d83-4a89-a79d-7d096104f3f6', + }, + timeField: '@timestamp', + searchType: 'searchSource', + timeWindowSize: 5, + timeWindowUnit: 'm', + threshold: [1000], + thresholdComparator: '>', + size: 100, + aggType: 'count', + groupBy: 'all', + termSize: 5, + excludeHitsFromPreviousRun: true, + }, + ], + 'kibana.alert.rule.revision': [0], + _id: '93377bf3-d837-425d-b63f-97a8a5ae8054', + _index: '.internal.alerts-stack.alerts-default-000001', + }, + } as unknown as AlertFieldsTableProps; + let wrapper: ReactWrapper; + + beforeEach(async () => { + wrapper = mount(); + }); + + it('should paginate the results', () => { + expect(wrapper.find('tbody tr')).toHaveLength(25); + wrapper.find(`[data-test-subj="pagination-button-next"]`).last().simulate('click'); + expect(wrapper.find('tbody tr')).toHaveLength(8); + }); + + it('should filter the rows according to the search string', async () => { + wrapper + .find('input[type="search"]') + .simulate('keyup', { target: { value: 'kibana.alert.status' } }); + expect(wrapper.find('tbody tr')).toHaveLength(1); + }); +}); diff --git a/packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx b/packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx new file mode 100644 index 0000000000000..3a34036ac9144 --- /dev/null +++ b/packages/kbn-alerts-ui-shared/src/alert_fields_table/index.tsx @@ -0,0 +1,143 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { i18n } from '@kbn/i18n'; +import { + EuiInMemoryTable, + EuiTabbedContent, + EuiTabbedContentProps, + useEuiOverflowScroll, +} from '@elastic/eui'; +import { css } from '@emotion/react'; +import React, { memo, useCallback, useMemo, useState } from 'react'; +import { Alert } from '@kbn/alerting-types'; +import { euiThemeVars } from '@kbn/ui-theme'; +import { EuiBasicTableColumn } from '@elastic/eui/src/components/basic_table/basic_table'; + +export const search = { + box: { + incremental: true, + placeholder: i18n.translate('alertsUIShared.alertFieldsTable.filter.placeholder', { + defaultMessage: 'Filter by Field, Value, or Description...', + }), + schema: true, + }, +}; + +const columns: Array> = [ + { + field: 'key', + name: i18n.translate('alertsUIShared.alertFieldsTable.field', { + defaultMessage: 'Field', + }), + width: '30%', + }, + { + field: 'value', + name: i18n.translate('alertsUIShared.alertFieldsTable.value', { + defaultMessage: 'Value', + }), + width: '70%', + }, +]; + +export const ScrollableFlyoutTabbedContent = (props: EuiTabbedContentProps) => ( + +); + +const COUNT_PER_PAGE_OPTIONS = [25, 50, 100]; + +const useFieldBrowserPagination = () => { + const [pagination, setPagination] = useState<{ pageIndex: number }>({ + pageIndex: 0, + }); + + const onTableChange = useCallback(({ page: { index } }: { page: { index: number } }) => { + setPagination({ pageIndex: index }); + }, []); + const paginationTableProp = useMemo( + () => ({ + ...pagination, + pageSizeOptions: COUNT_PER_PAGE_OPTIONS, + }), + [pagination] + ); + + return { + onTableChange, + paginationTableProp, + }; +}; + +type AlertField = Exclude< + { + [K in keyof Alert]: { key: K; value: Alert[K] }; + }[keyof Alert], + undefined +>; + +export interface AlertFieldsTableProps { + /** + * The raw alert object + */ + alert: Alert; + /** + * A list of alert field keys to be shown in the table. + * When not defined, all the fields are shown. + */ + fields?: Array; +} + +/** + * A paginated, filterable table to show alert object fields + */ +export const AlertFieldsTable = memo(({ alert, fields }: AlertFieldsTableProps) => { + const { onTableChange, paginationTableProp } = useFieldBrowserPagination(); + const items = useMemo(() => { + let _items = Object.entries(alert).map( + ([key, value]) => + ({ + key, + value, + } as AlertField) + ); + if (fields?.length) { + _items = _items.filter((f) => fields.includes(f.key)); + } + return _items; + }, [alert, fields]); + return ( + + ); +}); diff --git a/packages/kbn-alerts-ui-shared/tsconfig.json b/packages/kbn-alerts-ui-shared/tsconfig.json index a7af1fcec80cc..f2347b579acef 100644 --- a/packages/kbn-alerts-ui-shared/tsconfig.json +++ b/packages/kbn-alerts-ui-shared/tsconfig.json @@ -28,5 +28,6 @@ "@kbn/data-views-plugin", "@kbn/unified-search-plugin", "@kbn/es-query", + "@kbn/ui-theme", ] } diff --git a/packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts b/packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts index 2df8aa2d71ea3..2f1cb1b7c27e9 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/container.ts @@ -15,6 +15,7 @@ interface ContainerDocument extends Fields { 'container.id': string; 'kubernetes.pod.uid': string; 'kubernetes.node.name': string; + 'metricset.name'?: string; } export class Container extends Entity { 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 8da22d5b140d7..db2fb3dd3d735 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/infra/host.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/host.ts @@ -13,14 +13,79 @@ import { Serializable } from '../serializable'; import { pod } from './pod'; interface HostDocument extends Fields { + 'agent.id': string; 'host.hostname': string; + 'host.name': string; + 'metricset.name'?: string; } class Host extends Entity { - metrics() { + cpu() { return new HostMetrics({ ...this.fields, - 'system.cpu.total.norm.pct': 46, + 'system.cpu.total.norm.pct': 0.094, + 'system.cpu.user.pct': 0.805, + 'system.cpu.system.pct': 0.704, + 'system.cpu.cores': 16, + 'metricset.period': 10000, + 'metricset.name': 'cpu', + }); + } + + memory() { + return new HostMetrics({ + ...this.fields, + 'system.memory.actual.free': 44704067584, + 'system.memory.actual.used.bytes': 24015409152, + 'system.memory.actual.used.pct': 0.35, + 'system.memory.total': 68719476736, + 'system.memory.used.bytes': 39964708864, + 'system.memory.used.pct': 0.582, + 'metricset.period': 10000, + 'metricset.name': 'memory', + }); + } + + network() { + return new HostMetrics({ + ...this.fields, + 'host.network.ingress.bytes': 2871285, + 'host.network.egress.bytes': 2904987, + 'metricset.period': 10000, + 'metricset.name': 'network', + }); + } + + load() { + return new HostMetrics({ + ...this.fields, + 'system.load': { + 1: 3, + cores: 16, + }, + 'metricset.period': 10000, + 'metricset.name': 'load', + }); + } + + filesystem() { + return new HostMetrics({ + ...this.fields, + 'system.filesystem.used.pct': 12.23, + 'metricset.period': 10000, + 'metricset.name': 'filesystem', + }); + } + + diskio() { + return new HostMetrics({ + ...this.fields, + 'system.diskio.read.count': 3538413, + 'system.diskio.write.count': 4694333, + 'system.diskio.read.bytes': 33147297792, + 'system.diskio.write.bytes': 48595652608, + 'metricset.period': 10000, + 'metricset.name': 'diskio', }); } @@ -39,13 +104,35 @@ class Host extends Entity { } export interface HostMetricsDocument extends HostDocument { - 'system.cpu.total.norm.pct': number; + 'agent.id': string; + 'metricset.period'?: number; + 'metricset.name'?: string; + 'system.cpu.total.norm.pct'?: number; + 'system.cpu.user.pct'?: number; + 'system.cpu.system.pct'?: number; + 'system.cpu.cores'?: number; + 'system.diskio.read.count'?: number; + 'system.diskio.write.count'?: number; + 'system.diskio.read.bytes'?: number; + 'system.diskio.write.bytes'?: number; + 'system.filesystem.used.pct'?: number; + 'system.memory.actual.used.pct'?: number; + 'system.memory.total'?: number; + 'system.memory.actual.used.bytes'?: number; + 'system.memory.actual.free'?: number; + 'system.memory.used.bytes'?: number; + 'system.memory.used.pct'?: number; + 'system.load'?: { 1: number; cores: number }; + 'host.network.ingress.bytes'?: number; + 'host.network.egress.bytes'?: number; } class HostMetrics extends Serializable {} export function host(name: string): Host { return new Host({ + 'agent.id': 'synthtrace', 'host.hostname': name, + 'host.name': name, }); } 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 4876fd7291f53..618db5a69b77a 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/infra/pod.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/infra/pod.ts @@ -15,6 +15,7 @@ import { container } from './container'; interface PodDocument extends Fields { 'kubernetes.pod.uid': string; 'kubernetes.node.name': string; + 'metricset.name'?: string; } export class Pod extends Entity { 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 3453bee1d7369..9d5b3194bdbc0 100644 --- a/packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts +++ b/packages/kbn-apm-synthtrace-client/src/lib/logs/index.ts @@ -18,6 +18,8 @@ export type LogDocument = Fields & 'data_stream.type': string; 'data_stream.dataset': string; message?: string; + 'error.message'?: string; + 'event.original'?: string; 'event.dataset': string; 'log.level'?: string; 'host.name'?: string; diff --git a/packages/kbn-apm-synthtrace/index.ts b/packages/kbn-apm-synthtrace/index.ts index 880b97cac2a8f..378d7f610539d 100644 --- a/packages/kbn-apm-synthtrace/index.ts +++ b/packages/kbn-apm-synthtrace/index.ts @@ -12,6 +12,7 @@ export { ApmSynthtraceEsClient } from './src/lib/apm/client/apm_synthtrace_es_cl export { ApmSynthtraceKibanaClient } from './src/lib/apm/client/apm_synthtrace_kibana_client'; export { InfraSynthtraceEsClient } from './src/lib/infra/infra_synthtrace_es_client'; +export { InfraSynthtraceKibanaClient } from './src/lib/infra/infra_synthtrace_kibana_client'; export { AssetsSynthtraceEsClient } from './src/lib/assets/assets_synthtrace_es_client'; 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 3304fc7bd3c9c..13b4ee07aad24 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 @@ -9,6 +9,7 @@ import fetch from 'node-fetch'; import pRetry from 'p-retry'; import { Logger } from '../../utils/create_logger'; +import { kibanaHeaders } from '../../shared/client_headers'; export class ApmSynthtraceKibanaClient { private readonly logger: Logger; @@ -44,13 +45,31 @@ export class ApmSynthtraceKibanaClient { this.logger.debug(`Installing APM package ${packageVersion}`); const url = `${this.target}/api/fleet/epm/packages/apm/${packageVersion}`; - const response = await pRetry(() => { - return fetch(url, { - method: 'POST', - headers: kibanaHeaders(), - body: '{"force":true}', - }); - }); + const response = await pRetry( + async () => { + const res = await fetch(url, { + method: 'POST', + headers: kibanaHeaders(), + body: '{"force":true}', + }); + + if (res.status >= 400) { + const errorJson = await res.json(); + throw new Error( + `APM package installation returned ${res.status} status code\nError: ${errorJson}` + ); + } + return res; + }, + { + retries: 5, + onFailedAttempt: (error) => { + this.logger.debug( + `APM package installation failure. ${error.retriesLeft >= 1 ? 'Retrying' : 'Aborting'}` + ); + }, + } + ); const responseJson = await response.json(); @@ -63,12 +82,3 @@ export class ApmSynthtraceKibanaClient { this.logger.info(`Installed APM package ${packageVersion}`); } } - -function kibanaHeaders() { - return { - Accept: 'application/json', - 'Content-Type': 'application/json', - 'kbn-xsrf': 'kibana', - 'elastic-api-version': '2023-10-31', - }; -} 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 897d813ae6718..031c40c9ccf19 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 @@ -46,8 +46,20 @@ function getRoutingTransform() { return new Transform({ objectMode: true, transform(document: ESDocumentWithOperation, encoding, callback) { - if ('host.hostname' in document) { + const metricset = document['metricset.name']; + + if (metricset === 'cpu') { document._index = 'metrics-system.cpu-default'; + } else if (metricset === 'memory') { + document._index = 'metrics-system.memory-default'; + } else if (metricset === 'network') { + document._index = 'metrics-system.network-default'; + } else if (metricset === 'load') { + document._index = 'metrics-system.load-default'; + } else if (metricset === 'filesystem') { + document._index = 'metrics-system.filesystem-default'; + } else if (metricset === 'diskio') { + document._index = 'metrics-system.diskio-default'; } else if ('container.id' in document) { document._index = 'metrics-kubernetes.container-default'; } else if ('kubernetes.pod.uid' in document) { 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 new file mode 100644 index 0000000000000..c1ac555276a66 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/lib/infra/infra_synthtrace_kibana_client.ts @@ -0,0 +1,70 @@ +/* + * 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 { join } from 'path'; +import fetch from 'node-fetch'; +import pRetry from 'p-retry'; +import { Logger } from '../utils/create_logger'; +import { kibanaHeaders } from '../shared/client_headers'; + +export class InfraSynthtraceKibanaClient { + private readonly logger: Logger; + private target: string; + + constructor(options: { logger: Logger; target: string; username: string; password: string }) { + this.logger = options.logger; + const url = new URL(options.target); + url.username = options.username; + url.password = options.password; + this.target = url.toString(); + } + + async fetchLatestSystemPackageVersion() { + const fleetPackageApiUrl = join(this.target, '/api/fleet/epm/packages/system?prerelease=true'); + this.logger.debug(`Fetching latest System package version from ${fleetPackageApiUrl}`); + const response = await fetch(fleetPackageApiUrl, { + method: 'GET', + headers: kibanaHeaders(), + }); + + const responseJson = await response.json(); + + if (response.status !== 200) { + throw new Error( + `Failed to fetch latest System package version, received HTTP ${response.status} and message: ${responseJson.message}` + ); + } + + const { latestVersion } = responseJson.item; + + return latestVersion as string; + } + + async installSystemPackage(packageVersion: string) { + this.logger.debug(`Installing System package ${packageVersion}`); + + const url = join(this.target, `/api/fleet/epm/packages/system/${packageVersion}`); + const response = await pRetry(() => { + return fetch(url, { + method: 'POST', + headers: kibanaHeaders(), + body: '{"force":true}', + }); + }); + + const responseJson = await response.json(); + + if (!responseJson.items) { + throw new Error( + `Failed to install System package version ${packageVersion}, received HTTP ${response.status} and message: ${responseJson.message} for url ${url}` + ); + } + + this.logger.info(`Installed System package ${packageVersion}`); + } +} diff --git a/packages/kbn-apm-synthtrace/src/lib/shared/client_headers.ts b/packages/kbn-apm-synthtrace/src/lib/shared/client_headers.ts new file mode 100644 index 0000000000000..c6a5a80d6ad7f --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/lib/shared/client_headers.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 function kibanaHeaders() { + return { + Accept: 'application/json', + 'Content-Type': 'application/json', + 'kbn-xsrf': 'kibana', + 'elastic-api-version': '2023-10-31', + }; +} diff --git a/packages/kbn-apm-synthtrace/src/scenarios/helpers/random_names.ts b/packages/kbn-apm-synthtrace/src/scenarios/helpers/random_names.ts new file mode 100644 index 0000000000000..cb03428a8d032 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/helpers/random_names.ts @@ -0,0 +1,139 @@ +/* + * 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 randomGreekishNames = [ + 'Adonis', + 'Agamemnon', + 'Ajax', + 'Alexander', + 'Aphrodite', + 'Apollo', + 'Ares', + 'Aristophanes', + 'Artemis', + 'Athena', + 'Atlas', + 'Boreas', + 'Calliope', + 'Cassandra', + 'Clio', + 'Daphne', + 'Demeter', + 'Dionysius', + 'Dionysus', + 'Eileithyia', + 'Electra', + 'Eos', + 'Erato', + 'Erebos', + 'Eros', + 'Euterpe', + 'Gaia', + 'Hades', + 'Hecate', + 'Helios', + 'Hephaestus', + 'Hera', + 'Heracles (Hercules)', + 'Hercules', + 'Hermes', + 'Hestia', + 'Hypatia', + 'Hypnos', + 'Iphigenia', + 'Iris', + 'Kratos', + 'Leonidas', + 'Medusa', + 'Mnemosyne', + 'Morpheus', + 'Narcissus', + 'Nemesis', + 'Nike', + 'Notus', + 'Nyx', + 'Oceanus', + 'Odysseus', + 'Orpheus', + 'Pan', + 'Pandora', + 'Penelope', + 'Pericles', + 'Persephone', + 'Perseus', + 'Phoebe', + 'Polyphemus', + 'Pontus', + 'Poseidon', + 'Priam', + 'Prometheus', + 'Rhea', + 'Sappho', + 'Selene', + 'Terpsichore', + 'Tethys', + 'Thalia', + 'Thanatos', + 'Theia', + 'Theseus', + 'Thetis', + 'Triton', + 'Tyche', + 'Uranus', + 'Zephyrus', + 'Zeus', + 'Augustus', + 'Bacchus', + 'Brutus', + 'Caesar', + 'Caligula', + 'Caracalla', + 'Cassius', + 'Cato', + 'Cicero', + 'Cleopatra', + 'Commodus', + 'Constantine', + 'Diana', + 'Domitian', + 'Hadrian', + 'Horace', + 'Julius', + 'Juno', + 'Jupiter', + 'Livy', + 'Marcus Aurelius', + 'Mars', + 'Mercury', + 'Minerva', + 'Neptune', + 'Nero', + 'Octavian', + 'Ovid', + 'Pliny', + 'Pluto', + 'Pompey', + 'Remus', + 'Romulus', + 'Saturn', + 'Scipio', + 'Seneca', + 'Spartacus', + 'Theodosius', + 'Tiberius', + 'Titus', + 'Trajan', + 'Venus', + 'Vespasian', + 'Vesta', + 'Virgil', +]; + +export function getRandomNameForIndex(index: number) { + return randomGreekishNames[index % randomGreekishNames.length]; +} diff --git a/packages/kbn-apm-synthtrace/src/scenarios/many_errors.ts b/packages/kbn-apm-synthtrace/src/scenarios/many_errors.ts new file mode 100644 index 0000000000000..7948688610f56 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/many_errors.ts @@ -0,0 +1,53 @@ +/* + * 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 { ApmFields, apm } from '@kbn/apm-synthtrace-client'; +import { Scenario } from '../cli/scenario'; +import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; +import { withClient } from '../lib/utils/with_client'; +import { getRandomNameForIndex } from './helpers/random_names'; + +const ENVIRONMENT = getSynthtraceEnvironment(__filename); + +const scenario: Scenario = async (runOptions) => { + const { logger } = runOptions; + + const severities = ['critical', 'error', 'warning', 'info', 'debug', 'trace']; + + return { + generate: ({ range, clients: { apmEsClient } }) => { + const transactionName = 'DELETE /api/orders/{id}'; + + const instance = apm + .service({ name: `synth-node`, environment: ENVIRONMENT, agentName: 'nodejs' }) + .instance('instance'); + + const failedTraceEvents = range + .interval('1m') + .rate(2000) + .generator((timestamp, index) => { + const severity = severities[index % severities.length]; + const errorMessage = `${severity}: ${getRandomNameForIndex(index)} ${index}`; + return instance + .transaction({ transactionName }) + .timestamp(timestamp) + .duration(1000) + .failure() + .errors( + instance.error({ message: errorMessage, type: 'My Type' }).timestamp(timestamp + 50) + ); + }); + + return withClient( + apmEsClient, + logger.perf('generating_apm_events', () => failedTraceEvents) + ); + }, + }; +}; + +export default scenario; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/many_instances.ts b/packages/kbn-apm-synthtrace/src/scenarios/many_instances.ts new file mode 100644 index 0000000000000..4774839c71727 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/many_instances.ts @@ -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. + */ + +import { ApmFields, apm, Instance } from '@kbn/apm-synthtrace-client'; +import { random, times } from 'lodash'; +import { Scenario } from '../cli/scenario'; +import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; +import { withClient } from '../lib/utils/with_client'; +import { getRandomNameForIndex } from './helpers/random_names'; + +const ENVIRONMENT = getSynthtraceEnvironment(__filename); + +const scenario: Scenario = async ({ logger, scenarioOpts = { instances: 2000 } }) => { + const numInstances = scenarioOpts.instances; + const agentVersions = ['2.1.0', '2.0.0', '1.15.0', '1.14.0', '1.13.1']; + const language = 'go'; + const serviceName = 'synth-many-instances'; + const transactionName = 'GET /order/{id}'; + + return { + generate: ({ range, clients: { apmEsClient } }) => { + const instances = times(numInstances).map((index) => { + const agentVersion = agentVersions[index % agentVersions.length]; + const randomName = getRandomNameForIndex(index); + return apm + .service({ + name: serviceName, + environment: ENVIRONMENT, + agentName: language, + }) + .instance(`instance-${randomName}-${index}`) + .defaults({ 'agent.version': agentVersion, 'service.language.name': language }); + }); + + 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); + const generateError = random(1, 4) % 3 === 0; + const span = instance + .transaction({ transactionName }) + .timestamp(timestamp) + .duration(parentDuration); + + return !generateError + ? span.success() + : span + .failure() + .errors( + instance + .error({ message: `No handler for ${transactionName}` }) + .timestamp(timestamp + 50) + ); + }); + + 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': memoryFree, + 'system.memory.total': 1000, + 'system.cpu.total.norm.pct': cpuPct, + 'system.process.cpu.total.norm.pct': 0.7, + }) + .timestamp(timestamp) + ); + + return [traces, metricsets]; + }; + + return withClient( + apmEsClient, + logger.perf('generating_apm_events', () => instances.flatMap(instanceSpans)) + ); + }, + }; +}; + +export default scenario; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/many_services.ts b/packages/kbn-apm-synthtrace/src/scenarios/many_services.ts index 68a5432f1a29a..1af9f2f9e3b5a 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/many_services.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/many_services.ts @@ -7,17 +7,18 @@ */ import { ApmFields, apm, Instance } from '@kbn/apm-synthtrace-client'; -import { flatten, random } from 'lodash'; +import { flatten, random, times } from 'lodash'; import { Scenario } from '../cli/scenario'; import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; import { withClient } from '../lib/utils/with_client'; +import { getRandomNameForIndex } from './helpers/random_names'; const ENVIRONMENT = getSynthtraceEnvironment(__filename); -const scenario: Scenario = async ({ logger, scenarioOpts = { services: 500 } }) => { +const scenario: Scenario = async ({ logger, scenarioOpts = { services: 2000 } }) => { const numServices = scenarioOpts.services; + const transactionName = 'GET /order/{id}'; const languages = ['go', 'dotnet', 'java', 'python']; - const services = ['web', 'order-processing', 'api-backend', 'proxy']; const agentVersions: Record = { go: ['2.1.0', '2.0.0', '1.15.0', '1.14.0', '1.13.1'], dotnet: ['1.18.0', '1.17.0', '1.16.1', '1.16.0', '1.15.0'], @@ -27,82 +28,53 @@ const scenario: Scenario = async ({ logger, scenarioOpts = { services return { generate: ({ range, clients: { apmEsClient } }) => { - const successfulTimestamps = range.ratePerMinute(180); - const instances = flatten( - [...Array(numServices).keys()].map((index) => { + times(numServices).map((index) => { const language = languages[index % languages.length]; const agentLanguageVersions = agentVersions[language]; + const agentVersion = agentLanguageVersions[index % agentLanguageVersions.length]; const numOfInstances = (index % 3) + 1; - - return [...Array(numOfInstances).keys()].map((instanceIndex) => + return times(numOfInstances).map((instanceIndex) => apm .service({ - name: `${services[index % services.length]}-${language}-${index}`, + name: `${getRandomNameForIndex(index)}-${language}-${index}`, environment: ENVIRONMENT, agentName: language, }) .instance(`instance-${index}-${instanceIndex}`) - .defaults({ - 'agent.version': agentLanguageVersions[index % agentLanguageVersions.length], - 'service.language.name': language, - }) + .defaults({ 'agent.version': agentVersion, 'service.language.name': language }) ); }) ); - const urls = ['GET /order/{id}', 'POST /basket/{id}', 'DELETE /basket', 'GET /products']; + const instanceSpans = (instance: Instance) => { + const hasHighDuration = Math.random() > 0.5; + const throughput = random(1, 10); - const instanceSpans = (instance: Instance, url: string) => { - const successfulTraceEvents = successfulTimestamps.generator((timestamp) => { - const randomHigh = random(1000, 4000); - const randomLow = random(100, randomHigh / 5); - const duration = random(randomLow, randomHigh); - const childDuration = random(randomLow, duration); - const remainderDuration = duration - childDuration; + return range.ratePerMinute(throughput).generator((timestamp) => { + const parentDuration = hasHighDuration ? random(1000, 5000) : random(100, 1000); const generateError = random(1, 4) % 3 === 0; - const generateChildError = random(0, 5) % 2 === 0; const span = instance - .transaction({ transactionName: url }) + .transaction({ transactionName }) .timestamp(timestamp) - .duration(duration) - .children( - instance - .span({ - spanName: 'GET apm-*/_search', - spanType: 'db', - spanSubtype: 'elasticsearch', - }) - .duration(childDuration) - .destination('elasticsearch') - .timestamp(timestamp) - .outcome(generateError && generateChildError ? 'failure' : 'success'), - instance - .span({ spanName: 'custom_operation', spanType: 'custom' }) - .duration(remainderDuration) - .success() - .timestamp(timestamp + childDuration) - ); + .duration(parentDuration); + return !generateError ? span.success() : span .failure() .errors( - instance.error({ message: `No handler for ${url}` }).timestamp(timestamp + 50) + instance + .error({ message: `No handler for ${transactionName}` }) + .timestamp(timestamp + 50) ); }); - - return successfulTraceEvents; }; return withClient( apmEsClient, - logger.perf('generating_apm_events', () => - instances - .flatMap((instance) => urls.map((url) => ({ instance, url }))) - .map(({ instance, url }) => instanceSpans(instance, url)) - ) + logger.perf('generating_apm_events', () => instances.map(instanceSpans)) ); }, }; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/many_transactions.ts b/packages/kbn-apm-synthtrace/src/scenarios/many_transactions.ts new file mode 100644 index 0000000000000..895d413235512 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/many_transactions.ts @@ -0,0 +1,99 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { ApmFields, apm, Instance } from '@kbn/apm-synthtrace-client'; +import { random, times } from 'lodash'; +import { Scenario } from '../cli/scenario'; +import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; +import { withClient } from '../lib/utils/with_client'; + +const ENVIRONMENT = getSynthtraceEnvironment(__filename); + +const scenario: Scenario = async (runOptions) => { + const { logger } = runOptions; + const { numServices = 1 } = runOptions.scenarioOpts || {}; + const numTransactions = 2000; + + const transactionNames = ['GET', 'PUT', 'DELETE', 'UPDATE'].flatMap((method) => + [ + '/users', + '/products', + '/orders', + '/customers', + '/profile', + '/categories', + '/invoices', + '/payments', + '/cart', + '/reviews', + ].map((resource) => `${method} ${resource}`) + ); + + return { + generate: ({ range, clients: { apmEsClient } }) => { + const instances = times(numServices).map((index) => + apm + .service({ name: `synth-go-${index}`, environment: ENVIRONMENT, agentName: 'go' }) + .instance(`instance-${index}`) + ); + + const instanceSpans = (instance: Instance, transactionName: string) => { + const successfulTraceEvents = range + .ratePerMinute(random(1, 60)) + .generator((timestamp) => + instance + .transaction({ transactionName }) + .timestamp(timestamp) + .duration(random(100, 10_000)) + .success() + ); + + const failedTraceEvents = range.ratePerMinute(random(1, 60)).generator((timestamp) => + instance + .transaction({ transactionName }) + .timestamp(timestamp) + .duration(random(100, 10_000)) + .failure() + .errors( + instance + .error({ message: '[ResponseError] index_not_found_exception' }) + .timestamp(timestamp + 50) + ) + ); + + const metricsets = range + .interval('30s') + .rate(1) + .generator((timestamp) => + instance + .appMetrics({ + 'system.memory.actual.free': 800, + 'system.memory.total': 1000, + 'system.cpu.total.norm.pct': 0.6, + 'system.process.cpu.total.norm.pct': 0.7, + }) + .timestamp(timestamp) + ); + + return [successfulTraceEvents, failedTraceEvents, metricsets]; + }; + + return withClient( + apmEsClient, + logger.perf('generating_apm_events', () => + instances.flatMap((instance) => + times(numTransactions) + .map((index) => `${transactionNames[index % transactionNames.length]}-${index}`) + .flatMap((transactionName) => instanceSpans(instance, transactionName)) + ) + ) + ); + }, + }; +}; + +export default scenario; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/many_transactions_per_service.ts b/packages/kbn-apm-synthtrace/src/scenarios/many_transactions_per_service.ts deleted file mode 100644 index 565ac8ea4f1ab..0000000000000 --- a/packages/kbn-apm-synthtrace/src/scenarios/many_transactions_per_service.ts +++ /dev/null @@ -1,88 +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 { ApmFields, apm, Instance } from '@kbn/apm-synthtrace-client'; -import { Scenario } from '../cli/scenario'; -import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; -import { withClient } from '../lib/utils/with_client'; - -const ENVIRONMENT = getSynthtraceEnvironment(__filename); - -const scenario: Scenario = async (runOptions) => { - const { logger } = runOptions; - const { numServices = 3 } = runOptions.scenarioOpts || {}; - const numTransactions = 100; - - return { - generate: ({ range, clients: { apmEsClient } }) => { - const urls = ['GET /order', 'POST /basket', 'DELETE /basket', 'GET /products']; - - const successfulTimestamps = range.ratePerMinute(180); - const failedTimestamps = range.interval('1m').rate(180); - - const instances = [...Array(numServices).keys()].map((index) => - apm - .service({ name: `synth-go-${index}`, environment: ENVIRONMENT, agentName: 'go' }) - .instance(`instance-${index}`) - ); - - const transactionNames = [...Array(numTransactions).keys()].map( - (index) => `${urls[index % urls.length]}/${index}` - ); - - const instanceSpans = (instance: Instance, transactionName: string) => { - const successfulTraceEvents = successfulTimestamps.generator((timestamp) => - instance.transaction({ transactionName }).timestamp(timestamp).duration(1000).success() - ); - - const failedTraceEvents = failedTimestamps.generator((timestamp) => - instance - .transaction({ transactionName }) - .timestamp(timestamp) - .duration(1000) - .failure() - .errors( - instance - .error({ message: '[ResponseError] index_not_found_exception' }) - .timestamp(timestamp + 50) - ) - ); - - const metricsets = range - .interval('30s') - .rate(1) - .generator((timestamp) => - instance - .appMetrics({ - 'system.memory.actual.free': 800, - 'system.memory.total': 1000, - 'system.cpu.total.norm.pct': 0.6, - 'system.process.cpu.total.norm.pct': 0.7, - }) - .timestamp(timestamp) - ); - - return [successfulTraceEvents, failedTraceEvents, metricsets]; - }; - - return withClient( - apmEsClient, - logger.perf('generating_apm_events', () => - instances - .flatMap((instance) => - transactionNames.map((transactionName) => ({ instance, transactionName })) - ) - .flatMap(({ instance, transactionName }, index) => - instanceSpans(instance, transactionName) - ) - ) - ); - }, - }; -}; - -export default scenario; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/service_many_dependencies.ts b/packages/kbn-apm-synthtrace/src/scenarios/service_many_dependencies.ts new file mode 100644 index 0000000000000..a548e55f575a4 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/service_many_dependencies.ts @@ -0,0 +1,67 @@ +/* + * 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 { ApmFields, Instance } from '@kbn/apm-synthtrace-client'; +import { service } from '@kbn/apm-synthtrace-client/src/lib/apm/service'; +import { Scenario } from '../cli/scenario'; +import { RunOptions } from '../cli/utils/parse_run_cli_flags'; +import { getSynthtraceEnvironment } from '../lib/utils/get_synthtrace_environment'; +import { withClient } from '../lib/utils/with_client'; + +const ENVIRONMENT = getSynthtraceEnvironment(__filename); +const MAX_DEPENDENCIES = 10000; +const MAX_DEPENDENCIES_PER_SERVICE = 500; +const MAX_SERVICES = 20; + +const scenario: Scenario = async (runOptions: RunOptions) => { + return { + generate: ({ range, clients: { apmEsClient } }) => { + const javaInstances = Array.from({ length: MAX_SERVICES }).map((_, index) => + service(`opbeans-java-${index}`, ENVIRONMENT, 'java').instance(`java-instance-${index}`) + ); + + const instanceDependencies = (instance: Instance, startIndex: number) => { + const rate = range.ratePerMinute(60); + + return rate.generator((timestamp, index) => { + const currentIndex = index % MAX_DEPENDENCIES_PER_SERVICE; + const destination = (startIndex + currentIndex) % MAX_DEPENDENCIES; + + const span = instance + .transaction({ transactionName: 'GET /java' }) + .timestamp(timestamp) + .duration(400) + .success() + .children( + instance + .span({ + spanName: 'GET apm-*/_search', + spanType: 'db', + spanSubtype: 'elasticsearch', + }) + .destination(`elasticsearch/${destination}`) + .timestamp(timestamp) + .duration(200) + .success() + ); + + return span; + }); + }; + + return withClient( + apmEsClient, + javaInstances.map((instance, index) => + instanceDependencies(instance, (index * MAX_DEPENDENCIES_PER_SERVICE) % MAX_DEPENDENCIES) + ) + ); + }, + }; +}; + +export default scenario; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/service_summary_field_version_dependent.ts b/packages/kbn-apm-synthtrace/src/scenarios/service_summary_field_version_dependent.ts new file mode 100644 index 0000000000000..37999bff114c2 --- /dev/null +++ b/packages/kbn-apm-synthtrace/src/scenarios/service_summary_field_version_dependent.ts @@ -0,0 +1,71 @@ +/* + * 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 { ApmFields, apm } from '@kbn/apm-synthtrace-client'; +import { random } from 'lodash'; +import { pipeline, Readable } from 'stream'; +import semver from 'semver'; +import { Scenario } from '../cli/scenario'; +import { + addObserverVersionTransform, + deleteSummaryFieldTransform, +} from '../lib/utils/transform_helpers'; +import { withClient } from '../lib/utils/with_client'; + +const scenario: Scenario = async ({ logger, versionOverride }) => { + const version = versionOverride as string; + const isLegacy = versionOverride && semver.lt(version, '8.7.0'); + return { + bootstrap: async ({ apmEsClient }) => { + if (isLegacy) { + apmEsClient.pipeline((base: Readable) => { + const defaultPipeline = apmEsClient.getDefaultPipeline()( + base + ) as unknown as NodeJS.ReadableStream; + + return pipeline( + defaultPipeline, + addObserverVersionTransform(version), + deleteSummaryFieldTransform(), + (err) => { + if (err) { + logger.error(err); + } + } + ); + }); + } + }, + generate: ({ range, clients: { apmEsClient } }) => { + const successfulTimestamps = range.ratePerMinute(6); + const instance = apm + .service({ + name: `java${isLegacy ? '-legacy' : ''}`, + environment: 'production', + agentName: 'java', + }) + .instance(`instance`); + + return withClient( + apmEsClient, + successfulTimestamps.generator((timestamp) => { + const randomHigh = random(1000, 4000); + const randomLow = random(100, randomHigh / 5); + const duration = random(randomLow, randomHigh); + return instance + .transaction({ transactionName: 'GET /order/{id}' }) + .timestamp(timestamp) + .duration(duration) + .success(); + }) + ); + }, + }; +}; + +export default scenario; diff --git a/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts b/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts index 18c1fc1c52550..f37847cdcaecf 100644 --- a/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts +++ b/packages/kbn-apm-synthtrace/src/scenarios/simple_logs.ts @@ -37,7 +37,7 @@ const scenario: Scenario = async (runOptions) => { .interval('1m') .rate(1) .generator((timestamp) => { - return Array(20) + return Array(3) .fill(0) .map(() => { const index = Math.floor(Math.random() * 3); @@ -63,9 +63,133 @@ const scenario: Scenario = async (runOptions) => { }); }); + const logsWithNoLogLevel = range + .interval('1m') + .rate(1) + .generator((timestamp) => { + return Array(3) + .fill(0) + .map(() => { + const index = Math.floor(Math.random() * 3); + return log + .create() + .service(SERVICE_NAMES[index]) + .defaults({ + 'trace.id': generateShortId(), + 'error.message': MESSAGE_LOG_LEVELS[index].message, + '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`, + }) + .timestamp(timestamp); + }); + }); + + const logsWithErrorMessage = range + .interval('1m') + .rate(1) + .generator((timestamp) => { + return Array(3) + .fill(0) + .map(() => { + const index = Math.floor(Math.random() * 3); + return log + .create() + .logLevel(MESSAGE_LOG_LEVELS[index].level) + .service(SERVICE_NAMES[index]) + .defaults({ + 'trace.id': generateShortId(), + 'error.message': MESSAGE_LOG_LEVELS[index].message, + '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`, + }) + .timestamp(timestamp); + }); + }); + + const logsWithEventMessage = range + .interval('1m') + .rate(1) + .generator((timestamp) => { + return Array(3) + .fill(0) + .map(() => { + const index = Math.floor(Math.random() * 3); + return log + .create() + .logLevel(MESSAGE_LOG_LEVELS[index].level) + .service(SERVICE_NAMES[index]) + .defaults({ + 'trace.id': generateShortId(), + 'event.original': MESSAGE_LOG_LEVELS[index].message, + '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`, + }) + .timestamp(timestamp); + }); + }); + + const logsWithNoMessage = range + .interval('1m') + .rate(1) + .generator((timestamp) => { + return Array(3) + .fill(0) + .map(() => { + const index = Math.floor(Math.random() * 3); + return log + .create() + .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`, + }) + .timestamp(timestamp); + }); + }); + return withClient( logsEsClient, - logger.perf('generating_logs', () => logs) + logger.perf('generating_logs', () => [ + logs, + logsWithNoLogLevel, + logsWithErrorMessage, + logsWithEventMessage, + logsWithNoMessage, + ]) ); }, }; diff --git a/packages/kbn-babel-preset/BUILD.bazel b/packages/kbn-babel-preset/BUILD.bazel index a8ae67bfea870..90344e7c8756d 100644 --- a/packages/kbn-babel-preset/BUILD.bazel +++ b/packages/kbn-babel-preset/BUILD.bazel @@ -25,7 +25,7 @@ NPM_MODULE_EXTRA_FILES = [ ] RUNTIME_DEPS = [ - "@npm//@babel/plugin-proposal-class-properties", + "@npm//@babel/plugin-transform-class-properties", "@npm//@babel/plugin-proposal-export-namespace-from", "@npm//@babel/plugin-proposal-nullish-coalescing-operator", "@npm//@babel/plugin-proposal-optional-chaining", diff --git a/packages/kbn-babel-preset/common_preset.js b/packages/kbn-babel-preset/common_preset.js index f8ce4c6353797..6590692c4f70c 100644 --- a/packages/kbn-babel-preset/common_preset.js +++ b/packages/kbn-babel-preset/common_preset.js @@ -21,7 +21,7 @@ module.exports = () => ({ // TECHNICALLY stage 2, but for all intents and purposes it's stage 3 // // See https://github.com/babel/proposals/issues/12 for progress - require.resolve('@babel/plugin-proposal-class-properties'), + require.resolve('@babel/plugin-transform-class-properties'), // Optional Chaining proposal is stage 4 (https://github.com/tc39/proposal-optional-chaining) // Need this since we are using TypeScript 3.7+ diff --git a/packages/kbn-check-mappings-update-cli/current_fields.json b/packages/kbn-check-mappings-update-cli/current_fields.json index c745e4886cde9..3a51ffd206ab0 100644 --- a/packages/kbn-check-mappings-update-cli/current_fields.json +++ b/packages/kbn-check-mappings-update-cli/current_fields.json @@ -468,6 +468,7 @@ "ingest_manager_settings": [ "fleet_server_hosts", "has_seen_add_data_notice", + "output_secret_storage_requirements_met", "prerelease_integrations_enabled", "secret_storage_requirements_met" ], diff --git a/packages/kbn-check-mappings-update-cli/current_mappings.json b/packages/kbn-check-mappings-update-cli/current_mappings.json index 7f5c94647b941..1c4c15482934a 100644 --- a/packages/kbn-check-mappings-update-cli/current_mappings.json +++ b/packages/kbn-check-mappings-update-cli/current_mappings.json @@ -1564,6 +1564,9 @@ "prerelease_integrations_enabled": { "type": "boolean" }, + "output_secret_storage_requirements_met": { + "type": "boolean" + }, "secret_storage_requirements_met": { "type": "boolean" } diff --git a/packages/kbn-data-stream-adapter/README.md b/packages/kbn-data-stream-adapter/README.md new file mode 100644 index 0000000000000..04a3d854aced7 --- /dev/null +++ b/packages/kbn-data-stream-adapter/README.md @@ -0,0 +1,69 @@ +# @kbn/data-stream-adapter + +Utility library for Elasticsearch data stream management. + +## DataStreamAdapter + +Manage single data streams. Example: + +``` +// Setup +const dataStream = new DataStreamAdapter('my-awesome-datastream', { kibanaVersion: '8.12.1' }); + +dataStream.setComponentTemplate({ + name: 'awesome-component-template', + fieldMap: { + 'awesome.field1: { type: 'keyword', required: true }, + 'awesome.nested.field2: { type: 'number', required: false }, + // ... + }, +}); + +dataStream.setIndexTemplate({ + name: 'awesome-index-template', + componentTemplateRefs: ['awesome-component-template', 'ecs-component-template'], + template: { + lifecycle: { + data_retention: '5d', + }, + }, +}); + +// Start +await dataStream.install({ logger, esClient, pluginStop$ }); // Installs templates and the data stream, or updates existing. +``` + + +## DataStreamSpacesAdapter + +Manage data streams per space. Example: + +``` +// Setup +const spacesDataStream = new DataStreamSpacesAdapter('my-awesome-datastream', { kibanaVersion: '8.12.1' }); + +spacesDataStream.setComponentTemplate({ + name: 'awesome-component-template', + fieldMap: { + 'awesome.field1: { type: 'keyword', required: true }, + 'awesome.nested.field2: { type: 'number', required: false }, + // ... + }, +}); + +spacesDataStream.setIndexTemplate({ + name: 'awesome-index-template', + componentTemplateRefs: ['awesome-component-template', 'ecs-component-template'], + template: { + lifecycle: { + data_retention: '5d', + }, + }, +}); + +// Start +await spacesDataStream.install({ logger, esClient, pluginStop$ }); // Installs templates and updates existing data streams. + +// Create a space data stream on the fly +await spacesDataStream.installSpace('space2'); // creates 'my-awesome-datastream-space2' data stream if it does not exist. +``` diff --git a/packages/kbn-data-stream-adapter/index.ts b/packages/kbn-data-stream-adapter/index.ts new file mode 100644 index 0000000000000..808145be4f12e --- /dev/null +++ b/packages/kbn-data-stream-adapter/index.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. + */ + +export { DataStreamAdapter } from './src/data_stream_adapter'; +export { DataStreamSpacesAdapter } from './src/data_stream_spaces_adapter'; +export { retryTransientEsErrors } from './src/retry_transient_es_errors'; +export { ecsFieldMap, type EcsFieldMap } from './src/field_maps/ecs_field_map'; + +export type { + DataStreamAdapterParams, + SetComponentTemplateParams, + SetIndexTemplateParams, + InstallParams, +} from './src/data_stream_adapter'; +export * from './src/field_maps/types'; diff --git a/packages/kbn-data-stream-adapter/jest.config.js b/packages/kbn-data-stream-adapter/jest.config.js new file mode 100644 index 0000000000000..48b717249e353 --- /dev/null +++ b/packages/kbn-data-stream-adapter/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-data-stream-adapter'], +}; diff --git a/packages/kbn-data-stream-adapter/kibana.jsonc b/packages/kbn-data-stream-adapter/kibana.jsonc new file mode 100644 index 0000000000000..99cbb458a8517 --- /dev/null +++ b/packages/kbn-data-stream-adapter/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/data-stream-adapter", + "owner": "@elastic/security-threat-hunting-explore" +} diff --git a/packages/kbn-data-stream-adapter/package.json b/packages/kbn-data-stream-adapter/package.json new file mode 100644 index 0000000000000..80b16c25ac217 --- /dev/null +++ b/packages/kbn-data-stream-adapter/package.json @@ -0,0 +1,7 @@ +{ + "name": "@kbn/data-stream-adapter", + "version": "1.0.0", + "description": "Utility library for Elasticsearch Data Stream management", + "license": "SSPL-1.0 OR Elastic License 2.0", + "private": true +} diff --git a/packages/kbn-data-stream-adapter/src/create_or_update_component_template.test.ts b/packages/kbn-data-stream-adapter/src/create_or_update_component_template.test.ts new file mode 100644 index 0000000000000..78fabd29d1ae8 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/create_or_update_component_template.test.ts @@ -0,0 +1,290 @@ +/* + * 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 { elasticsearchServiceMock, loggingSystemMock } from '@kbn/core/server/mocks'; +import type { DiagnosticResult } from '@elastic/elasticsearch'; +import { errors as EsErrors } from '@elastic/elasticsearch'; +import { createOrUpdateComponentTemplate } from './create_or_update_component_template'; + +const randomDelayMultiplier = 0.01; +const logger = loggingSystemMock.createLogger(); +const clusterClient = elasticsearchServiceMock.createClusterClient().asInternalUser; + +const componentTemplate = { + name: 'test-mappings', + _meta: { + managed: true, + }, + template: { + settings: { + number_of_shards: 1, + 'index.mapping.total_fields.limit': 1500, + }, + mappings: { + dynamic: false, + properties: { + foo: { + ignore_above: 1024, + type: 'keyword', + }, + }, + }, + }, +}; + +describe('createOrUpdateComponentTemplate', () => { + beforeEach(() => { + jest.resetAllMocks(); + jest.spyOn(global.Math, 'random').mockReturnValue(randomDelayMultiplier); + }); + + it(`should call esClient to put component template`, async () => { + await createOrUpdateComponentTemplate({ + logger, + esClient: clusterClient, + template: componentTemplate, + totalFieldsLimit: 2500, + }); + + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledWith(componentTemplate); + }); + + it(`should retry on transient ES errors`, async () => { + clusterClient.cluster.putComponentTemplate + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ acknowledged: true }); + await createOrUpdateComponentTemplate({ + logger, + esClient: clusterClient, + template: componentTemplate, + totalFieldsLimit: 2500, + }); + + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(3); + }); + + it(`should log and throw error if max retries exceeded`, async () => { + clusterClient.cluster.putComponentTemplate.mockRejectedValue( + new EsErrors.ConnectionError('foo') + ); + await expect(() => + createOrUpdateComponentTemplate({ + logger, + esClient: clusterClient, + template: componentTemplate, + totalFieldsLimit: 2500, + }) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"foo"`); + + expect(logger.error).toHaveBeenCalledWith( + `Error installing component template test-mappings - foo` + ); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(4); + }); + + it(`should log and throw error if ES throws error`, async () => { + clusterClient.cluster.putComponentTemplate.mockRejectedValue(new Error('generic error')); + + await expect(() => + createOrUpdateComponentTemplate({ + logger, + esClient: clusterClient, + template: componentTemplate, + totalFieldsLimit: 2500, + }) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"generic error"`); + + expect(logger.error).toHaveBeenCalledWith( + `Error installing component template test-mappings - generic error` + ); + }); + + it(`should update index template field limit and retry if putTemplate throws error with field limit error`, async () => { + clusterClient.cluster.putComponentTemplate.mockRejectedValueOnce( + new EsErrors.ResponseError({ + body: 'illegal_argument_exception: Limit of total fields [1800] has been exceeded', + } as DiagnosticResult) + ); + const existingIndexTemplate = { + name: 'test-template', + index_template: { + index_patterns: ['test*'], + composed_of: ['test-mappings'], + template: { + settings: { + auto_expand_replicas: '0-1', + hidden: true, + 'index.lifecycle': { + name: '.alerts-ilm-policy', + rollover_alias: `.alerts-empty-default`, + }, + 'index.mapping.total_fields.limit': 1800, + }, + mappings: { + dynamic: false, + }, + }, + }, + }; + + clusterClient.indices.getIndexTemplate.mockResolvedValueOnce({ + index_templates: [existingIndexTemplate], + }); + + await createOrUpdateComponentTemplate({ + logger, + esClient: clusterClient, + template: componentTemplate, + totalFieldsLimit: 2500, + }); + + expect(logger.info).toHaveBeenCalledWith('Updating total_fields.limit from 1800 to 2500'); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledTimes(1); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledWith({ + name: existingIndexTemplate.name, + body: { + ...existingIndexTemplate.index_template, + template: { + ...existingIndexTemplate.index_template.template, + settings: { + ...existingIndexTemplate.index_template.template?.settings, + 'index.mapping.total_fields.limit': 2500, + }, + }, + }, + }); + }); + + it(`should update index template field limit and retry if putTemplate throws error with field limit error when there are malformed index templates`, async () => { + clusterClient.cluster.putComponentTemplate.mockRejectedValueOnce( + new EsErrors.ResponseError({ + body: 'illegal_argument_exception: Limit of total fields [1800] has been exceeded', + } as DiagnosticResult) + ); + const existingIndexTemplate = { + name: 'test-template', + index_template: { + index_patterns: ['test*'], + composed_of: ['test-mappings'], + template: { + settings: { + auto_expand_replicas: '0-1', + hidden: true, + 'index.lifecycle': { + name: '.alerts-ilm-policy', + rollover_alias: `.alerts-empty-default`, + }, + 'index.mapping.total_fields.limit': 1800, + }, + mappings: { + dynamic: false, + }, + }, + }, + }; + + clusterClient.indices.getIndexTemplate.mockResolvedValueOnce({ + index_templates: [ + existingIndexTemplate, + { + name: 'lyndon', + // @ts-expect-error + index_template: { + index_patterns: ['intel*'], + }, + }, + { + name: 'sample_ds', + // @ts-expect-error + index_template: { + index_patterns: ['sample_ds-*'], + data_stream: { + hidden: false, + allow_custom_routing: false, + }, + }, + }, + ], + }); + + await createOrUpdateComponentTemplate({ + logger, + esClient: clusterClient, + template: componentTemplate, + totalFieldsLimit: 2500, + }); + + expect(logger.info).toHaveBeenCalledWith('Updating total_fields.limit from 1800 to 2500'); + expect(clusterClient.cluster.putComponentTemplate).toHaveBeenCalledTimes(2); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledTimes(1); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledWith({ + name: existingIndexTemplate.name, + body: { + ...existingIndexTemplate.index_template, + template: { + ...existingIndexTemplate.index_template.template, + settings: { + ...existingIndexTemplate.index_template.template?.settings, + 'index.mapping.total_fields.limit': 2500, + }, + }, + }, + }); + }); + + it(`should retry getIndexTemplate and putIndexTemplate on transient ES errors`, async () => { + clusterClient.cluster.putComponentTemplate.mockRejectedValueOnce( + new EsErrors.ResponseError({ + body: 'illegal_argument_exception: Limit of total fields [1800] has been exceeded', + } as DiagnosticResult) + ); + const existingIndexTemplate = { + name: 'test-template', + index_template: { + index_patterns: ['test*'], + composed_of: ['test-mappings'], + template: { + settings: { + auto_expand_replicas: '0-1', + hidden: true, + 'index.lifecycle': { + name: '.alerts-ilm-policy', + rollover_alias: `.alerts-empty-default`, + }, + 'index.mapping.total_fields.limit': 1800, + }, + mappings: { + dynamic: false, + }, + }, + }, + }; + clusterClient.indices.getIndexTemplate + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValueOnce({ + index_templates: [existingIndexTemplate], + }); + clusterClient.indices.putIndexTemplate + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ acknowledged: true }); + await createOrUpdateComponentTemplate({ + logger, + esClient: clusterClient, + template: componentTemplate, + totalFieldsLimit: 2500, + }); + + expect(logger.info).toHaveBeenCalledWith('Updating total_fields.limit from 1800 to 2500'); + expect(clusterClient.indices.getIndexTemplate).toHaveBeenCalledTimes(3); + expect(clusterClient.indices.putIndexTemplate).toHaveBeenCalledTimes(3); + }); +}); diff --git a/packages/kbn-data-stream-adapter/src/create_or_update_component_template.ts b/packages/kbn-data-stream-adapter/src/create_or_update_component_template.ts new file mode 100644 index 0000000000000..c63dedaae6ea1 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/create_or_update_component_template.ts @@ -0,0 +1,118 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import type { + ClusterPutComponentTemplateRequest, + IndicesGetIndexTemplateIndexTemplateItem, +} from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { Logger, ElasticsearchClient } from '@kbn/core/server'; +import { asyncForEach } from '@kbn/std'; +import { retryTransientEsErrors } from './retry_transient_es_errors'; + +interface CreateOrUpdateComponentTemplateOpts { + logger: Logger; + esClient: ElasticsearchClient; + template: ClusterPutComponentTemplateRequest; + totalFieldsLimit: number; +} + +const putIndexTemplateTotalFieldsLimitUsingComponentTemplate = async ( + esClient: ElasticsearchClient, + componentTemplateName: string, + totalFieldsLimit: number, + logger: Logger +) => { + // Get all index templates and filter down to just the ones referencing this component template + const { index_templates: indexTemplates } = await retryTransientEsErrors( + () => esClient.indices.getIndexTemplate(), + { logger } + ); + const indexTemplatesUsingComponentTemplate = (indexTemplates ?? []).filter( + (indexTemplate: IndicesGetIndexTemplateIndexTemplateItem) => + (indexTemplate.index_template?.composed_of ?? []).includes(componentTemplateName) + ); + + await asyncForEach( + indexTemplatesUsingComponentTemplate, + async (template: IndicesGetIndexTemplateIndexTemplateItem) => { + await retryTransientEsErrors( + () => + esClient.indices.putIndexTemplate({ + name: template.name, + body: { + ...template.index_template, + template: { + ...template.index_template.template, + settings: { + ...template.index_template.template?.settings, + 'index.mapping.total_fields.limit': totalFieldsLimit, + }, + }, + }, + }), + { logger } + ); + } + ); +}; + +const createOrUpdateComponentTemplateHelper = async ( + esClient: ElasticsearchClient, + template: ClusterPutComponentTemplateRequest, + totalFieldsLimit: number, + logger: Logger +) => { + try { + await retryTransientEsErrors(() => esClient.cluster.putComponentTemplate(template), { logger }); + } catch (error) { + const limitErrorMatch = error.message.match( + /Limit of total fields \[(\d+)\] has been exceeded/ + ); + if (limitErrorMatch != null) { + // This error message occurs when there is an index template using this component template + // that contains a field limit setting that using this component template exceeds + // Specifically, this can happen for the ECS component template when we add new fields + // to adhere to the ECS spec. Individual index templates specify field limits so if the + // number of new ECS fields pushes the composed mapping above the limit, this error will + // occur. We have to update the field limit inside the index template now otherwise we + // can never update the component template + + logger.info(`Updating total_fields.limit from ${limitErrorMatch[1]} to ${totalFieldsLimit}`); + + await putIndexTemplateTotalFieldsLimitUsingComponentTemplate( + esClient, + template.name, + totalFieldsLimit, + logger + ); + + // Try to update the component template again + await retryTransientEsErrors(() => esClient.cluster.putComponentTemplate(template), { + logger, + }); + } else { + throw error; + } + } +}; + +export const createOrUpdateComponentTemplate = async ({ + logger, + esClient, + template, + totalFieldsLimit, +}: CreateOrUpdateComponentTemplateOpts) => { + logger.info(`Installing component template ${template.name}`); + + try { + await createOrUpdateComponentTemplateHelper(esClient, template, totalFieldsLimit, logger); + } catch (err) { + logger.error(`Error installing component template ${template.name} - ${err.message}`); + throw err; + } +}; diff --git a/packages/kbn-data-stream-adapter/src/create_or_update_data_stream.test.ts b/packages/kbn-data-stream-adapter/src/create_or_update_data_stream.test.ts new file mode 100644 index 0000000000000..cc587dcaebfad --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/create_or_update_data_stream.test.ts @@ -0,0 +1,172 @@ +/* + * 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 { IndicesDataStream } from '@elastic/elasticsearch/lib/api/types'; +import { elasticsearchServiceMock, loggingSystemMock } from '@kbn/core/server/mocks'; +import { + updateDataStreams, + createDataStream, + createOrUpdateDataStream, +} from './create_or_update_data_stream'; + +const logger = loggingSystemMock.createLogger(); +const esClient = elasticsearchServiceMock.createClusterClient().asInternalUser; + +esClient.indices.putMapping.mockResolvedValue({ acknowledged: true }); +esClient.indices.putSettings.mockResolvedValue({ acknowledged: true }); + +const simulateIndexTemplateResponse = { template: { mappings: { is_managed: true } } }; +esClient.indices.simulateIndexTemplate.mockResolvedValue(simulateIndexTemplateResponse); + +const name = 'test_data_stream'; +const totalFieldsLimit = 1000; + +describe('updateDataStreams', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it(`should update data streams`, async () => { + const dataStreamName = 'test_data_stream-default'; + esClient.indices.getDataStream.mockResolvedValueOnce({ + data_streams: [{ name: dataStreamName } as IndicesDataStream], + }); + + await updateDataStreams({ + esClient, + logger, + name, + totalFieldsLimit, + }); + + expect(esClient.indices.getDataStream).toHaveBeenCalledWith({ name, expand_wildcards: 'all' }); + + expect(esClient.indices.putSettings).toHaveBeenCalledWith({ + index: dataStreamName, + body: { 'index.mapping.total_fields.limit': totalFieldsLimit }, + }); + expect(esClient.indices.simulateIndexTemplate).toHaveBeenCalledWith({ + name: dataStreamName, + }); + expect(esClient.indices.putMapping).toHaveBeenCalledWith({ + index: dataStreamName, + body: simulateIndexTemplateResponse.template.mappings, + }); + }); + + it(`should update multiple data streams`, async () => { + const dataStreamName1 = 'test_data_stream-1'; + const dataStreamName2 = 'test_data_stream-2'; + esClient.indices.getDataStream.mockResolvedValueOnce({ + data_streams: [{ name: dataStreamName1 }, { name: dataStreamName2 }] as IndicesDataStream[], + }); + + await updateDataStreams({ + esClient, + logger, + name, + totalFieldsLimit, + }); + + expect(esClient.indices.putSettings).toHaveBeenCalledTimes(2); + expect(esClient.indices.simulateIndexTemplate).toHaveBeenCalledTimes(2); + expect(esClient.indices.putMapping).toHaveBeenCalledTimes(2); + }); + + it(`should not update data streams when not exist`, async () => { + esClient.indices.getDataStream.mockResolvedValueOnce({ data_streams: [] }); + + await updateDataStreams({ + esClient, + logger, + name, + totalFieldsLimit, + }); + + expect(esClient.indices.putSettings).not.toHaveBeenCalled(); + expect(esClient.indices.simulateIndexTemplate).not.toHaveBeenCalled(); + expect(esClient.indices.putMapping).not.toHaveBeenCalled(); + }); +}); + +describe('createDataStream', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it(`should create data stream`, async () => { + esClient.indices.getDataStream.mockResolvedValueOnce({ data_streams: [] }); + + await createDataStream({ + esClient, + logger, + name, + }); + + expect(esClient.indices.createDataStream).toHaveBeenCalledWith({ name }); + }); + + it(`should not create data stream if already exists`, async () => { + esClient.indices.getDataStream.mockResolvedValueOnce({ + data_streams: [{ name: 'test_data_stream-default' } as IndicesDataStream], + }); + + await createDataStream({ + esClient, + logger, + name, + }); + + expect(esClient.indices.createDataStream).not.toHaveBeenCalled(); + }); +}); + +describe('createOrUpdateDataStream', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it(`should create data stream if not exists`, async () => { + esClient.indices.getDataStream.mockResolvedValueOnce({ data_streams: [] }); + + await createDataStream({ + esClient, + logger, + name, + }); + + expect(esClient.indices.createDataStream).toHaveBeenCalledWith({ name }); + }); + + it(`should update data stream if already exists`, async () => { + esClient.indices.getDataStream.mockResolvedValueOnce({ + data_streams: [{ name: 'test_data_stream-default' } as IndicesDataStream], + }); + + await createOrUpdateDataStream({ + esClient, + logger, + name, + totalFieldsLimit, + }); + + expect(esClient.indices.getDataStream).toHaveBeenCalledWith({ name, expand_wildcards: 'all' }); + + expect(esClient.indices.putSettings).toHaveBeenCalledWith({ + index: name, + body: { 'index.mapping.total_fields.limit': totalFieldsLimit }, + }); + expect(esClient.indices.simulateIndexTemplate).toHaveBeenCalledWith({ + name, + }); + expect(esClient.indices.putMapping).toHaveBeenCalledWith({ + index: name, + body: simulateIndexTemplateResponse.template.mappings, + }); + }); +}); diff --git a/packages/kbn-data-stream-adapter/src/create_or_update_data_stream.ts b/packages/kbn-data-stream-adapter/src/create_or_update_data_stream.ts new file mode 100644 index 0000000000000..5cff6005ea8e0 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/create_or_update_data_stream.ts @@ -0,0 +1,239 @@ +/* + * 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 { IndicesDataStream } from '@elastic/elasticsearch/lib/api/types'; +import type { IndicesSimulateIndexTemplateResponse } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { Logger, ElasticsearchClient } from '@kbn/core/server'; +import { get } from 'lodash'; +import { retryTransientEsErrors } from './retry_transient_es_errors'; + +interface UpdateIndexMappingsOpts { + logger: Logger; + esClient: ElasticsearchClient; + indexNames: string[]; + totalFieldsLimit: number; +} + +interface UpdateIndexOpts { + logger: Logger; + esClient: ElasticsearchClient; + indexName: string; + totalFieldsLimit: number; +} + +const updateTotalFieldLimitSetting = async ({ + logger, + esClient, + indexName, + totalFieldsLimit, +}: UpdateIndexOpts) => { + logger.debug(`Updating total field limit setting for ${indexName} data stream.`); + + try { + const body = { 'index.mapping.total_fields.limit': totalFieldsLimit }; + await retryTransientEsErrors(() => esClient.indices.putSettings({ index: indexName, body }), { + logger, + }); + } catch (err) { + logger.error( + `Failed to PUT index.mapping.total_fields.limit settings for ${indexName}: ${err.message}` + ); + throw err; + } +}; + +// This will update the mappings but *not* the settings. This +// is due to the fact settings can be classed as dynamic and static, and static +// updates will fail on an index that isn't closed. New settings *will* be applied as part +// of the ILM policy rollovers. More info: https://github.com/elastic/kibana/pull/113389#issuecomment-940152654 +const updateMapping = async ({ logger, esClient, indexName }: UpdateIndexOpts) => { + logger.debug(`Updating mappings for ${indexName} data stream.`); + + let simulatedIndexMapping: IndicesSimulateIndexTemplateResponse; + try { + simulatedIndexMapping = await retryTransientEsErrors( + () => esClient.indices.simulateIndexTemplate({ name: indexName }), + { logger } + ); + } catch (err) { + logger.error( + `Ignored PUT mappings for ${indexName}; error generating simulated mappings: ${err.message}` + ); + return; + } + + const simulatedMapping = get(simulatedIndexMapping, ['template', 'mappings']); + + if (simulatedMapping == null) { + logger.error(`Ignored PUT mappings for ${indexName}; simulated mappings were empty`); + return; + } + + try { + await retryTransientEsErrors( + () => esClient.indices.putMapping({ index: indexName, body: simulatedMapping }), + { logger } + ); + } catch (err) { + logger.error(`Failed to PUT mapping for ${indexName}: ${err.message}`); + throw err; + } +}; +/** + * Updates the data stream mapping and total field limit setting + */ +const updateDataStreamMappings = async ({ + logger, + esClient, + totalFieldsLimit, + indexNames, +}: UpdateIndexMappingsOpts) => { + // Update total field limit setting of found indices + // Other index setting changes are not updated at this time + await Promise.all( + indexNames.map((indexName) => + updateTotalFieldLimitSetting({ logger, esClient, totalFieldsLimit, indexName }) + ) + ); + // Update mappings of the found indices. + await Promise.all( + indexNames.map((indexName) => updateMapping({ logger, esClient, totalFieldsLimit, indexName })) + ); +}; + +export interface CreateOrUpdateDataStreamParams { + name: string; + logger: Logger; + esClient: ElasticsearchClient; + totalFieldsLimit: number; +} + +export async function createOrUpdateDataStream({ + logger, + esClient, + name, + totalFieldsLimit, +}: CreateOrUpdateDataStreamParams): Promise { + logger.info(`Creating data stream - ${name}`); + + // check if data stream exists + let dataStreamExists = false; + try { + const response = await retryTransientEsErrors( + () => esClient.indices.getDataStream({ name, expand_wildcards: 'all' }), + { logger } + ); + dataStreamExists = response.data_streams.length > 0; + } catch (error) { + if (error?.statusCode !== 404) { + logger.error(`Error fetching data stream for ${name} - ${error.message}`); + throw error; + } + } + + // if a data stream exists, update the underlying mapping + if (dataStreamExists) { + await updateDataStreamMappings({ + logger, + esClient, + indexNames: [name], + totalFieldsLimit, + }); + } else { + try { + await retryTransientEsErrors(() => esClient.indices.createDataStream({ name }), { logger }); + } catch (error) { + if (error?.meta?.body?.error?.type !== 'resource_already_exists_exception') { + logger.error(`Error creating data stream ${name} - ${error.message}`); + throw error; + } + } + } +} + +export interface CreateDataStreamParams { + name: string; + logger: Logger; + esClient: ElasticsearchClient; +} + +export async function createDataStream({ + logger, + esClient, + name, +}: CreateDataStreamParams): Promise { + logger.info(`Creating data stream - ${name}`); + + // check if data stream exists + let dataStreamExists = false; + try { + const response = await retryTransientEsErrors( + () => esClient.indices.getDataStream({ name, expand_wildcards: 'all' }), + { logger } + ); + dataStreamExists = response.data_streams.length > 0; + } catch (error) { + if (error?.statusCode !== 404) { + logger.error(`Error fetching data stream for ${name} - ${error.message}`); + throw error; + } + } + + // return if data stream already created + if (dataStreamExists) { + return; + } + + try { + await retryTransientEsErrors(() => esClient.indices.createDataStream({ name }), { logger }); + } catch (error) { + if (error?.meta?.body?.error?.type !== 'resource_already_exists_exception') { + logger.error(`Error creating data stream ${name} - ${error.message}`); + throw error; + } + } +} + +export interface CreateOrUpdateSpacesDataStreamParams { + name: string; + logger: Logger; + esClient: ElasticsearchClient; + totalFieldsLimit: number; +} + +export async function updateDataStreams({ + logger, + esClient, + name, + totalFieldsLimit, +}: CreateOrUpdateSpacesDataStreamParams): Promise { + logger.info(`Updating data streams - ${name}`); + + // check if data stream exists + let dataStreams: IndicesDataStream[] = []; + try { + const response = await retryTransientEsErrors( + () => esClient.indices.getDataStream({ name, expand_wildcards: 'all' }), + { logger } + ); + dataStreams = response.data_streams; + } catch (error) { + if (error?.statusCode !== 404) { + logger.error(`Error fetching data stream for ${name} - ${error.message}`); + throw error; + } + } + if (dataStreams.length > 0) { + await updateDataStreamMappings({ + logger, + esClient, + totalFieldsLimit, + indexNames: dataStreams.map((dataStream) => dataStream.name), + }); + } +} diff --git a/packages/kbn-data-stream-adapter/src/create_or_update_index_template.test.ts b/packages/kbn-data-stream-adapter/src/create_or_update_index_template.test.ts new file mode 100644 index 0000000000000..cb3b6e77a02b5 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/create_or_update_index_template.test.ts @@ -0,0 +1,167 @@ +/* + * 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 { elasticsearchServiceMock, loggingSystemMock } from '@kbn/core/server/mocks'; +import { errors as EsErrors } from '@elastic/elasticsearch'; +import { createOrUpdateIndexTemplate } from './create_or_update_index_template'; + +const randomDelayMultiplier = 0.01; +const logger = loggingSystemMock.createLogger(); +const esClient = elasticsearchServiceMock.createClusterClient().asInternalUser; + +const getIndexTemplate = (namespace: string = 'default', useDataStream: boolean = false) => ({ + name: `.alerts-test.alerts-${namespace}-index-template`, + body: { + _meta: { + kibana: { + version: '8.6.1', + }, + managed: true, + namespace, + }, + composed_of: ['mappings1', 'framework-mappings'], + index_patterns: [`.internal.alerts-test.alerts-${namespace}-*`], + template: { + mappings: { + _meta: { + kibana: { + version: '8.6.1', + }, + managed: true, + namespace, + }, + dynamic: false, + }, + settings: { + auto_expand_replicas: '0-1', + hidden: true, + ...(useDataStream + ? {} + : { + 'index.lifecycle': { + name: 'test-ilm-policy', + rollover_alias: `.alerts-test.alerts-${namespace}`, + }, + }), + 'index.mapping.ignore_malformed': true, + 'index.mapping.total_fields.limit': 2500, + }, + }, + priority: namespace.length, + }, +}); + +const simulateTemplateResponse = { + template: { + aliases: { + alias_name_1: { + is_hidden: true, + }, + alias_name_2: { + is_hidden: true, + }, + }, + mappings: { enabled: false }, + settings: {}, + }, +}; + +describe('createOrUpdateIndexTemplate', () => { + beforeEach(() => { + jest.resetAllMocks(); + jest.spyOn(global.Math, 'random').mockReturnValue(randomDelayMultiplier); + }); + + it(`should call esClient to put index template`, async () => { + esClient.indices.simulateTemplate.mockImplementation(async () => simulateTemplateResponse); + await createOrUpdateIndexTemplate({ logger, esClient, template: getIndexTemplate() }); + + expect(esClient.indices.simulateTemplate).toHaveBeenCalledWith(getIndexTemplate()); + expect(esClient.indices.putIndexTemplate).toHaveBeenCalledWith(getIndexTemplate()); + }); + + it(`should retry on transient ES errors`, async () => { + esClient.indices.simulateTemplate.mockImplementation(async () => simulateTemplateResponse); + esClient.indices.putIndexTemplate + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockResolvedValue({ acknowledged: true }); + await createOrUpdateIndexTemplate({ logger, esClient, template: getIndexTemplate() }); + + expect(esClient.indices.putIndexTemplate).toHaveBeenCalledTimes(3); + }); + + it(`should retry simulateTemplate on transient ES errors`, async () => { + esClient.indices.simulateTemplate + .mockRejectedValueOnce(new EsErrors.ConnectionError('foo')) + .mockRejectedValueOnce(new EsErrors.TimeoutError('timeout')) + .mockImplementation(async () => simulateTemplateResponse); + esClient.indices.putIndexTemplate.mockResolvedValue({ acknowledged: true }); + await createOrUpdateIndexTemplate({ logger, esClient, template: getIndexTemplate }); + + expect(esClient.indices.simulateTemplate).toHaveBeenCalledTimes(3); + }); + + it(`should log and throw error if max retries exceeded`, async () => { + esClient.indices.simulateTemplate.mockImplementation(async () => simulateTemplateResponse); + esClient.indices.putIndexTemplate.mockRejectedValue(new EsErrors.ConnectionError('foo')); + await expect(() => + createOrUpdateIndexTemplate({ logger, esClient, template: getIndexTemplate() }) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"foo"`); + + expect(logger.error).toHaveBeenCalledWith( + `Error installing index template .alerts-test.alerts-default-index-template - foo`, + expect.any(Error) + ); + expect(esClient.indices.putIndexTemplate).toHaveBeenCalledTimes(4); + }); + + it(`should log and throw error if ES throws error`, async () => { + esClient.indices.simulateTemplate.mockImplementation(async () => simulateTemplateResponse); + esClient.indices.putIndexTemplate.mockRejectedValue(new Error('generic error')); + + await expect(() => + createOrUpdateIndexTemplate({ logger, esClient, template: getIndexTemplate() }) + ).rejects.toThrowErrorMatchingInlineSnapshot(`"generic error"`); + + expect(logger.error).toHaveBeenCalledWith( + `Error installing index template .alerts-test.alerts-default-index-template - generic error`, + expect.any(Error) + ); + }); + + it(`should log and return without updating template if simulate throws error`, async () => { + esClient.indices.simulateTemplate.mockRejectedValue(new Error('simulate error')); + esClient.indices.putIndexTemplate.mockRejectedValue(new Error('generic error')); + + await createOrUpdateIndexTemplate({ logger, esClient, template: getIndexTemplate() }); + + expect(logger.error).toHaveBeenCalledWith( + `Failed to simulate index template mappings for .alerts-test.alerts-default-index-template; not applying mappings - simulate error`, + expect.any(Error) + ); + expect(esClient.indices.putIndexTemplate).not.toHaveBeenCalled(); + }); + + it(`should throw error if simulate returns empty mappings`, async () => { + esClient.indices.simulateTemplate.mockImplementationOnce(async () => ({ + ...simulateTemplateResponse, + template: { + ...simulateTemplateResponse.template, + mappings: {}, + }, + })); + + await expect(() => + createOrUpdateIndexTemplate({ logger, esClient, template: getIndexTemplate() }) + ).rejects.toThrowErrorMatchingInlineSnapshot( + `"No mappings would be generated for .alerts-test.alerts-default-index-template, possibly due to failed/misconfigured bootstrapping"` + ); + expect(esClient.indices.putIndexTemplate).not.toHaveBeenCalled(); + }); +}); diff --git a/packages/kbn-data-stream-adapter/src/create_or_update_index_template.ts b/packages/kbn-data-stream-adapter/src/create_or_update_index_template.ts new file mode 100644 index 0000000000000..e9d5d589c55d6 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/create_or_update_index_template.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. + */ + +import type { + IndicesPutIndexTemplateRequest, + MappingTypeMapping, +} from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { Logger, ElasticsearchClient } from '@kbn/core/server'; +import { isEmpty } from 'lodash/fp'; +import { retryTransientEsErrors } from './retry_transient_es_errors'; + +interface CreateOrUpdateIndexTemplateOpts { + logger: Logger; + esClient: ElasticsearchClient; + template: IndicesPutIndexTemplateRequest; +} + +/** + * Installs index template that uses installed component template + * Prior to installation, simulates the installation to check for possible + * conflicts. Simulate should return an empty mapping if a template + * conflicts with an already installed template. + */ +export const createOrUpdateIndexTemplate = async ({ + logger, + esClient, + template, +}: CreateOrUpdateIndexTemplateOpts) => { + logger.info(`Installing index template ${template.name}`); + + let mappings: MappingTypeMapping = {}; + try { + // Simulate the index template to proactively identify any issues with the mapping + const simulateResponse = await retryTransientEsErrors( + () => esClient.indices.simulateTemplate(template), + { logger } + ); + mappings = simulateResponse.template.mappings; + } catch (err) { + logger.error( + `Failed to simulate index template mappings for ${template.name}; not applying mappings - ${err.message}`, + err + ); + return; + } + + if (isEmpty(mappings)) { + throw new Error( + `No mappings would be generated for ${template.name}, possibly due to failed/misconfigured bootstrapping` + ); + } + + try { + await retryTransientEsErrors(() => esClient.indices.putIndexTemplate(template), { + logger, + }); + } catch (err) { + logger.error(`Error installing index template ${template.name} - ${err.message}`, err); + throw err; + } +}; diff --git a/packages/kbn-data-stream-adapter/src/data_stream_adapter.ts b/packages/kbn-data-stream-adapter/src/data_stream_adapter.ts new file mode 100644 index 0000000000000..3b3e2958eb46a --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/data_stream_adapter.ts @@ -0,0 +1,160 @@ +/* + * 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 { + ClusterPutComponentTemplateRequest, + IndicesIndexSettings, + IndicesPutIndexTemplateIndexTemplateMapping, + IndicesPutIndexTemplateRequest, +} from '@elastic/elasticsearch/lib/api/types'; +import type { Logger, ElasticsearchClient } from '@kbn/core/server'; +import type { Subject } from 'rxjs'; +import type { FieldMap } from './field_maps/types'; +import { createOrUpdateComponentTemplate } from './create_or_update_component_template'; +import { createOrUpdateDataStream } from './create_or_update_data_stream'; +import { createOrUpdateIndexTemplate } from './create_or_update_index_template'; +import { InstallShutdownError, installWithTimeout } from './install_with_timeout'; +import { getComponentTemplate, getIndexTemplate } from './resource_installer_utils'; + +export interface DataStreamAdapterParams { + kibanaVersion: string; + totalFieldsLimit?: number; +} +export interface SetComponentTemplateParams { + name: string; + fieldMap: FieldMap; + settings?: IndicesIndexSettings; + dynamic?: 'strict' | boolean; +} +export interface SetIndexTemplateParams { + name: string; + componentTemplateRefs?: string[]; + namespace?: string; + template?: IndicesPutIndexTemplateIndexTemplateMapping; + hidden?: boolean; +} + +export interface GetInstallFnParams { + logger: Logger; + pluginStop$: Subject; + tasksTimeoutMs?: number; +} +export interface InstallParams { + logger: Logger; + esClient: ElasticsearchClient | Promise; + pluginStop$: Subject; + tasksTimeoutMs?: number; +} + +const DEFAULT_FIELDS_LIMIT = 2500; + +export class DataStreamAdapter { + protected readonly kibanaVersion: string; + protected readonly totalFieldsLimit: number; + protected componentTemplates: ClusterPutComponentTemplateRequest[] = []; + protected indexTemplates: IndicesPutIndexTemplateRequest[] = []; + protected installed: boolean; + + constructor(protected readonly name: string, options: DataStreamAdapterParams) { + this.installed = false; + this.kibanaVersion = options.kibanaVersion; + this.totalFieldsLimit = options.totalFieldsLimit ?? DEFAULT_FIELDS_LIMIT; + } + + public setComponentTemplate(params: SetComponentTemplateParams) { + if (this.installed) { + throw new Error('Cannot set component template after install'); + } + this.componentTemplates.push(getComponentTemplate(params)); + } + + public setIndexTemplate(params: SetIndexTemplateParams) { + if (this.installed) { + throw new Error('Cannot set index template after install'); + } + this.indexTemplates.push( + getIndexTemplate({ + ...params, + indexPatterns: [this.name], + kibanaVersion: this.kibanaVersion, + totalFieldsLimit: this.totalFieldsLimit, + }) + ); + } + + protected getInstallFn({ logger, pluginStop$, tasksTimeoutMs }: GetInstallFnParams) { + return async (promise: Promise, description?: string): Promise => { + try { + await installWithTimeout({ + installFn: () => promise, + description, + timeoutMs: tasksTimeoutMs, + pluginStop$, + }); + } catch (err) { + if (err instanceof InstallShutdownError) { + logger.info(err.message); + } else { + throw err; + } + } + }; + } + + public async install({ + logger, + esClient: esClientToResolve, + pluginStop$, + tasksTimeoutMs, + }: InstallParams) { + this.installed = true; + + const esClient = await esClientToResolve; + const installFn = this.getInstallFn({ logger, pluginStop$, tasksTimeoutMs }); + + // Install component templates in parallel + await Promise.all( + this.componentTemplates.map((componentTemplate) => + installFn( + createOrUpdateComponentTemplate({ + template: componentTemplate, + esClient, + logger, + totalFieldsLimit: this.totalFieldsLimit, + }), + `${componentTemplate.name} component template` + ) + ) + ); + + // Install index templates in parallel + await Promise.all( + this.indexTemplates.map((indexTemplate) => + installFn( + createOrUpdateIndexTemplate({ + template: indexTemplate, + esClient, + logger, + }), + `${indexTemplate.name} index template` + ) + ) + ); + + // create data stream when everything is ready + await installFn( + createOrUpdateDataStream({ + name: this.name, + esClient, + logger, + totalFieldsLimit: this.totalFieldsLimit, + }), + `${this.name} data stream` + ); + } +} diff --git a/packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts b/packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts new file mode 100644 index 0000000000000..5daad080d4720 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/data_stream_spaces_adapter.ts @@ -0,0 +1,100 @@ +/* + * 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 { createOrUpdateComponentTemplate } from './create_or_update_component_template'; +import { createDataStream, updateDataStreams } from './create_or_update_data_stream'; +import { createOrUpdateIndexTemplate } from './create_or_update_index_template'; +import { + DataStreamAdapter, + type DataStreamAdapterParams, + type InstallParams, +} from './data_stream_adapter'; + +export class DataStreamSpacesAdapter extends DataStreamAdapter { + private installedSpaceDataStreamName: Map>; + private _installSpace?: (spaceId: string) => Promise; + + constructor(private readonly prefix: string, options: DataStreamAdapterParams) { + super(`${prefix}-*`, options); // make indexTemplate `indexPatterns` match all data stream space names + this.installedSpaceDataStreamName = new Map(); + } + + public async install({ + logger, + esClient: esClientToResolve, + pluginStop$, + tasksTimeoutMs, + }: InstallParams) { + this.installed = true; + + const esClient = await esClientToResolve; + const installFn = this.getInstallFn({ logger, pluginStop$, tasksTimeoutMs }); + + // Install component templates in parallel + await Promise.all( + this.componentTemplates.map((componentTemplate) => + installFn( + createOrUpdateComponentTemplate({ + template: componentTemplate, + esClient, + logger, + totalFieldsLimit: this.totalFieldsLimit, + }), + `create or update ${componentTemplate.name} component template` + ) + ) + ); + + // Install index templates in parallel + await Promise.all( + this.indexTemplates.map((indexTemplate) => + installFn( + createOrUpdateIndexTemplate({ template: indexTemplate, esClient, logger }), + `create or update ${indexTemplate.name} index template` + ) + ) + ); + + // Update existing space data streams + await installFn( + updateDataStreams({ + name: `${this.prefix}-*`, + esClient, + logger, + totalFieldsLimit: this.totalFieldsLimit, + }), + `update space data streams` + ); + + // define function to install data stream for spaces on demand + this._installSpace = async (spaceId: string) => { + const existingInstallPromise = this.installedSpaceDataStreamName.get(spaceId); + if (existingInstallPromise) { + return existingInstallPromise; + } + const name = `${this.prefix}-${spaceId}`; + const installPromise = installFn( + createDataStream({ name, esClient, logger }), + `create ${name} data stream` + ).then(() => name); + + this.installedSpaceDataStreamName.set(spaceId, installPromise); + return installPromise; + }; + } + + public async installSpace(spaceId: string): Promise { + if (!this._installSpace) { + throw new Error('Cannot installSpace before install'); + } + return this._installSpace(spaceId); + } + + public async getInstalledSpaceName(spaceId: string): Promise { + return this.installedSpaceDataStreamName.get(spaceId); + } +} diff --git a/packages/kbn-data-stream-adapter/src/field_maps/ecs_field_map.ts b/packages/kbn-data-stream-adapter/src/field_maps/ecs_field_map.ts new file mode 100644 index 0000000000000..17e8af1da7887 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/field_maps/ecs_field_map.ts @@ -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 { EcsFlat } from '@kbn/ecs'; +import type { EcsMetadata, FieldMap } from './types'; + +const EXCLUDED_TYPES = ['constant_keyword']; + +// ECS fields that have reached Stage 2 in the RFC process +// are included in the generated Yaml but are still considered +// experimental. Some are correctly marked as beta but most are +// not. + +// More about the RFC stages here: https://elastic.github.io/ecs/stages.html + +// The following RFCS are currently in stage 2: +// https://github.com/elastic/ecs/blob/main/rfcs/text/0027-faas-fields.md +// https://github.com/elastic/ecs/blob/main/rfcs/text/0035-tty-output.md +// https://github.com/elastic/ecs/blob/main/rfcs/text/0037-host-metrics.md +// https://github.com/elastic/ecs/blob/main/rfcs/text/0040-volume-device.md + +// Fields from these RFCs that are not already in the ECS component template +// as of 8.11 are manually identified as experimental below. +// The next time this list is updated, we should check the above list of RFCs to +// see if any have moved to Stage 3 and remove them from the list and check if +// there are any new stage 2 RFCs with fields we should exclude as experimental. + +const EXPERIMENTAL_FIELDS = [ + 'faas.trigger', // this was previously mapped as nested but changed to object + 'faas.trigger.request_id', + 'faas.trigger.type', + 'host.cpu.system.norm.pct', + 'host.cpu.user.norm.pct', + 'host.fsstats.total_size.total', + 'host.fsstats.total_size.used', + 'host.fsstats.total_size.used.pct', + 'host.load.norm.1', + 'host.load.norm.5', + 'host.load.norm.15', + 'host.memory.actual.used.bytes', + 'host.memory.actual.used.pct', + 'host.memory.total', + 'process.io.bytes', + 'volume.bus_type', + 'volume.default_access', + 'volume.device_name', + 'volume.device_type', + 'volume.dos_name', + 'volume.file_system_type', + 'volume.mount_name', + 'volume.nt_name', + 'volume.product_id', + 'volume.product_name', + 'volume.removable', + 'volume.serial_number', + 'volume.size', + 'volume.vendor_id', + 'volume.vendor_name', + 'volume.writable', +]; + +export const ecsFieldMap: FieldMap = Object.fromEntries( + Object.entries(EcsFlat) + .filter( + ([key, value]) => !EXCLUDED_TYPES.includes(value.type) && !EXPERIMENTAL_FIELDS.includes(key) + ) + .map(([key, _]) => { + const value: EcsMetadata = EcsFlat[key as keyof typeof EcsFlat]; + return [ + key, + { + type: value.type, + array: value.normalize.includes('array'), + required: !!value.required, + ...(value.scaling_factor ? { scaling_factor: value.scaling_factor } : {}), + ...(value.ignore_above ? { ignore_above: value.ignore_above } : {}), + ...(value.multi_fields ? { multi_fields: value.multi_fields } : {}), + }, + ]; + }) +); + +export type EcsFieldMap = typeof ecsFieldMap; diff --git a/packages/kbn-data-stream-adapter/src/field_maps/mapping_from_field_map.test.ts b/packages/kbn-data-stream-adapter/src/field_maps/mapping_from_field_map.test.ts new file mode 100644 index 0000000000000..e851bdc21d01b --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/field_maps/mapping_from_field_map.test.ts @@ -0,0 +1,393 @@ +/* + * 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 { alertFieldMap, legacyAlertFieldMap, type FieldMap } from '@kbn/alerts-as-data-utils'; +import { mappingFromFieldMap } from './mapping_from_field_map'; + +export const testFieldMap: FieldMap = { + date_field: { + type: 'date', + array: false, + required: true, + }, + keyword_field: { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + long_field: { + type: 'long', + array: false, + required: false, + }, + multifield_field: { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + multi_fields: [ + { + flat_name: 'multifield_field.text', + name: 'text', + type: 'match_only_text', + }, + ], + }, + geopoint_field: { + type: 'geo_point', + array: false, + required: false, + }, + ip_field: { + type: 'ip', + array: false, + required: false, + }, + array_field: { + type: 'keyword', + array: true, + required: false, + ignore_above: 1024, + }, + nested_array_field: { + type: 'nested', + array: false, + required: false, + }, + 'nested_array_field.field1': { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + 'nested_array_field.field2': { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + scaled_float_field: { + type: 'scaled_float', + array: false, + required: false, + scaling_factor: 1000, + }, + constant_keyword_field: { + type: 'constant_keyword', + array: false, + required: false, + }, + 'parent_field.child1': { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + 'parent_field.child2': { + type: 'keyword', + array: false, + required: false, + ignore_above: 1024, + }, + unmapped_object: { + type: 'object', + required: false, + enabled: false, + }, + formatted_field: { + type: 'date_range', + required: false, + format: 'epoch_millis||strict_date_optional_time', + }, +}; +export const expectedTestMapping = { + properties: { + array_field: { + ignore_above: 1024, + type: 'keyword', + }, + constant_keyword_field: { + type: 'constant_keyword', + }, + date_field: { + type: 'date', + }, + multifield_field: { + fields: { + text: { + type: 'match_only_text', + }, + }, + ignore_above: 1024, + type: 'keyword', + }, + geopoint_field: { + type: 'geo_point', + }, + ip_field: { + type: 'ip', + }, + keyword_field: { + ignore_above: 1024, + type: 'keyword', + }, + long_field: { + type: 'long', + }, + nested_array_field: { + properties: { + field1: { + ignore_above: 1024, + type: 'keyword', + }, + field2: { + ignore_above: 1024, + type: 'keyword', + }, + }, + type: 'nested', + }, + parent_field: { + properties: { + child1: { + ignore_above: 1024, + type: 'keyword', + }, + child2: { + ignore_above: 1024, + type: 'keyword', + }, + }, + }, + scaled_float_field: { + scaling_factor: 1000, + type: 'scaled_float', + }, + unmapped_object: { + enabled: false, + type: 'object', + }, + formatted_field: { + type: 'date_range', + format: 'epoch_millis||strict_date_optional_time', + }, + }, +}; + +describe('mappingFromFieldMap', () => { + it('correctly creates mapping from field map', () => { + expect(mappingFromFieldMap(testFieldMap)).toEqual({ + dynamic: 'strict', + ...expectedTestMapping, + }); + expect(mappingFromFieldMap(alertFieldMap)).toEqual({ + dynamic: 'strict', + properties: { + '@timestamp': { + ignore_malformed: false, + type: 'date', + }, + event: { + properties: { + action: { + type: 'keyword', + }, + kind: { + type: 'keyword', + }, + }, + }, + kibana: { + properties: { + alert: { + properties: { + action_group: { + type: 'keyword', + }, + case_ids: { + type: 'keyword', + }, + duration: { + properties: { + us: { + type: 'long', + }, + }, + }, + end: { + type: 'date', + }, + flapping: { + type: 'boolean', + }, + flapping_history: { + type: 'boolean', + }, + maintenance_window_ids: { + type: 'keyword', + }, + instance: { + properties: { + id: { + type: 'keyword', + }, + }, + }, + last_detected: { + type: 'date', + }, + reason: { + fields: { + text: { + type: 'match_only_text', + }, + }, + type: 'keyword', + }, + rule: { + properties: { + category: { + type: 'keyword', + }, + consumer: { + type: 'keyword', + }, + execution: { + properties: { + uuid: { + type: 'keyword', + }, + }, + }, + name: { + type: 'keyword', + }, + parameters: { + type: 'flattened', + ignore_above: 4096, + }, + producer: { + type: 'keyword', + }, + revision: { + type: 'long', + }, + rule_type_id: { + type: 'keyword', + }, + tags: { + type: 'keyword', + }, + uuid: { + type: 'keyword', + }, + }, + }, + start: { + type: 'date', + }, + status: { + type: 'keyword', + }, + time_range: { + type: 'date_range', + format: 'epoch_millis||strict_date_optional_time', + }, + url: { + ignore_above: 2048, + index: false, + type: 'keyword', + }, + uuid: { + type: 'keyword', + }, + workflow_assignee_ids: { + type: 'keyword', + }, + workflow_status: { + type: 'keyword', + }, + workflow_tags: { + type: 'keyword', + }, + }, + }, + space_ids: { + type: 'keyword', + }, + version: { + type: 'version', + }, + }, + }, + tags: { + type: 'keyword', + }, + }, + }); + expect(mappingFromFieldMap(legacyAlertFieldMap)).toEqual({ + dynamic: 'strict', + properties: { + kibana: { + properties: { + alert: { + properties: { + risk_score: { type: 'float' }, + rule: { + properties: { + author: { type: 'keyword' }, + created_at: { type: 'date' }, + created_by: { type: 'keyword' }, + description: { type: 'keyword' }, + enabled: { type: 'keyword' }, + from: { type: 'keyword' }, + interval: { type: 'keyword' }, + license: { type: 'keyword' }, + note: { type: 'keyword' }, + references: { type: 'keyword' }, + rule_id: { type: 'keyword' }, + rule_name_override: { type: 'keyword' }, + to: { type: 'keyword' }, + type: { type: 'keyword' }, + updated_at: { type: 'date' }, + updated_by: { type: 'keyword' }, + version: { type: 'keyword' }, + }, + }, + severity: { type: 'keyword' }, + suppression: { + properties: { + docs_count: { type: 'long' }, + end: { type: 'date' }, + terms: { + properties: { field: { type: 'keyword' }, value: { type: 'keyword' } }, + }, + start: { type: 'date' }, + }, + }, + system_status: { type: 'keyword' }, + workflow_reason: { type: 'keyword' }, + workflow_status_updated_at: { type: 'date' }, + workflow_user: { type: 'keyword' }, + }, + }, + }, + }, + ecs: { properties: { version: { type: 'keyword' } } }, + }, + }); + }); + + it('uses dynamic setting if specified', () => { + expect(mappingFromFieldMap(testFieldMap, true)).toEqual({ + dynamic: true, + ...expectedTestMapping, + }); + }); +}); diff --git a/packages/kbn-data-stream-adapter/src/field_maps/mapping_from_field_map.ts b/packages/kbn-data-stream-adapter/src/field_maps/mapping_from_field_map.ts new file mode 100644 index 0000000000000..5878cedd44195 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/field_maps/mapping_from_field_map.ts @@ -0,0 +1,54 @@ +/* + * 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 { MappingTypeMapping } from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import { set } from '@kbn/safer-lodash-set'; +import type { FieldMap, MultiField } from './types'; + +export function mappingFromFieldMap( + fieldMap: FieldMap, + dynamic: 'strict' | boolean = 'strict' +): MappingTypeMapping { + const mappings = { + dynamic, + properties: {}, + }; + + const fields = Object.keys(fieldMap).map((key: string) => { + const field = fieldMap[key]; + return { + name: key, + ...field, + }; + }); + + fields.forEach((field) => { + // eslint-disable-next-line @typescript-eslint/naming-convention + const { name, required, array, multi_fields, ...rest } = field; + const mapped = multi_fields + ? { + ...rest, + // eslint-disable-next-line @typescript-eslint/naming-convention + fields: multi_fields.reduce((acc, multi_field: MultiField) => { + acc[multi_field.name] = { + type: multi_field.type, + }; + return acc; + }, {} as Record), + } + : rest; + + set(mappings.properties, field.name.split('.').join('.properties.'), mapped); + + if (name === '@timestamp') { + set(mappings.properties, `${name}.ignore_malformed`, false); + } + }); + + return mappings; +} diff --git a/packages/kbn-data-stream-adapter/src/field_maps/types.ts b/packages/kbn-data-stream-adapter/src/field_maps/types.ts new file mode 100644 index 0000000000000..0a0b68a2f26e6 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/field_maps/types.ts @@ -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. + */ + +export interface AllowedValue { + description?: string; + name?: string; +} + +export interface MultiField { + flat_name: string; + name: string; + type: string; +} + +export interface EcsMetadata { + allowed_values?: AllowedValue[]; + dashed_name: string; + description: string; + doc_values?: boolean; + example?: string | number | boolean; + flat_name: string; + ignore_above?: number; + index?: boolean; + level: string; + multi_fields?: MultiField[]; + name: string; + normalize: string[]; + required?: boolean; + scaling_factor?: number; + short: string; + type: string; + properties?: Record; +} + +export interface FieldMap { + [key: string]: { + type: string; + required: boolean; + array?: boolean; + doc_values?: boolean; + enabled?: boolean; + format?: string; + ignore_above?: number; + multi_fields?: MultiField[]; + index?: boolean; + path?: string; + scaling_factor?: number; + dynamic?: boolean | 'strict'; + properties?: Record; + }; +} diff --git a/packages/kbn-data-stream-adapter/src/install_with_timeout.test.ts b/packages/kbn-data-stream-adapter/src/install_with_timeout.test.ts new file mode 100644 index 0000000000000..59945b23124c6 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/install_with_timeout.test.ts @@ -0,0 +1,63 @@ +/* + * 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 { loggerMock } from '@kbn/logging-mocks'; + +import { installWithTimeout } from './install_with_timeout'; +import { ReplaySubject, type Subject } from 'rxjs'; + +const logger = loggerMock.create(); + +describe('installWithTimeout', () => { + let pluginStop$: Subject; + + beforeEach(() => { + jest.resetAllMocks(); + pluginStop$ = new ReplaySubject(1); + }); + + it(`should call installFn`, async () => { + const installFn = jest.fn(); + await installWithTimeout({ + installFn, + pluginStop$, + timeoutMs: 10, + }); + expect(installFn).toHaveBeenCalled(); + }); + + it(`should short-circuit installFn if it exceeds configured timeout`, async () => { + await expect(() => + installWithTimeout({ + installFn: async () => { + await new Promise((r) => setTimeout(r, 20)); + }, + pluginStop$, + timeoutMs: 10, + }) + ).rejects.toThrowErrorMatchingInlineSnapshot( + `"Failure during installation. Timeout: it took more than 10ms"` + ); + }); + + it(`should short-circuit installFn if pluginStop$ signal is received`, async () => { + pluginStop$.next(); + await expect(() => + installWithTimeout({ + installFn: async () => { + await new Promise((r) => setTimeout(r, 5)); + logger.info(`running`); + }, + pluginStop$, + timeoutMs: 10, + }) + ).rejects.toThrowErrorMatchingInlineSnapshot( + `"Server is stopping; must stop all async operations"` + ); + }); +}); diff --git a/packages/kbn-data-stream-adapter/src/install_with_timeout.ts b/packages/kbn-data-stream-adapter/src/install_with_timeout.ts new file mode 100644 index 0000000000000..7995fed5152ad --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/install_with_timeout.ts @@ -0,0 +1,67 @@ +/* + * 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 { firstValueFrom, type Observable } from 'rxjs'; + +const INSTALLATION_TIMEOUT = 20 * 60 * 1000; // 20 minutes + +interface InstallWithTimeoutOpts { + description?: string; + installFn: () => Promise; + pluginStop$: Observable; + timeoutMs?: number; +} + +export class InstallShutdownError extends Error { + constructor() { + super('Server is stopping; must stop all async operations'); + Object.setPrototypeOf(this, InstallShutdownError.prototype); + } +} + +export const installWithTimeout = async ({ + description, + installFn, + pluginStop$, + timeoutMs = INSTALLATION_TIMEOUT, +}: InstallWithTimeoutOpts): Promise => { + try { + let timeoutId: NodeJS.Timeout; + const install = async (): Promise => { + await installFn(); + if (timeoutId) { + clearTimeout(timeoutId); + } + }; + + const throwTimeoutException = (): Promise => { + return new Promise((_, reject) => { + timeoutId = setTimeout(() => { + const msg = `Timeout: it took more than ${timeoutMs}ms`; + reject(new Error(msg)); + }, timeoutMs); + + firstValueFrom(pluginStop$).then(() => { + clearTimeout(timeoutId); + reject(new InstallShutdownError()); + }); + }); + }; + + await Promise.race([install(), throwTimeoutException()]); + } catch (e) { + if (e instanceof InstallShutdownError) { + throw e; + } else { + const reason = e?.message || 'Unknown reason'; + throw new Error( + `Failure during installation${description ? ` of ${description}` : ''}. ${reason}` + ); + } + } +}; diff --git a/packages/kbn-data-stream-adapter/src/resource_installer_utils.test.ts b/packages/kbn-data-stream-adapter/src/resource_installer_utils.test.ts new file mode 100644 index 0000000000000..e53eb7704a06a --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/resource_installer_utils.test.ts @@ -0,0 +1,170 @@ +/* + * 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 { getIndexTemplate, getComponentTemplate } from './resource_installer_utils'; + +describe('getIndexTemplate', () => { + const defaultParams = { + name: 'indexTemplateName', + kibanaVersion: '8.12.1', + indexPatterns: ['indexPattern1', 'indexPattern2'], + componentTemplateRefs: ['template1', 'template2'], + totalFieldsLimit: 2500, + }; + + it('should create index template with given parameters and defaults', () => { + const indexTemplate = getIndexTemplate(defaultParams); + + expect(indexTemplate).toEqual({ + name: defaultParams.name, + body: { + data_stream: { hidden: true }, + index_patterns: defaultParams.indexPatterns, + composed_of: defaultParams.componentTemplateRefs, + template: { + settings: { + hidden: true, + auto_expand_replicas: '0-1', + 'index.mapping.ignore_malformed': true, + 'index.mapping.total_fields.limit': defaultParams.totalFieldsLimit, + }, + mappings: { + dynamic: false, + _meta: { + kibana: { + version: defaultParams.kibanaVersion, + }, + managed: true, + namespace: 'default', + }, + }, + }, + _meta: { + kibana: { + version: defaultParams.kibanaVersion, + }, + managed: true, + namespace: 'default', + }, + priority: 7, + }, + }); + }); + + it('should create not hidden index template', () => { + const { body } = getIndexTemplate({ ...defaultParams, hidden: false }); + expect(body?.data_stream?.hidden).toEqual(false); + expect(body?.template?.settings?.hidden).toEqual(false); + }); + + it('should create index template with custom namespace', () => { + const { body } = getIndexTemplate({ ...defaultParams, namespace: 'custom-namespace' }); + expect(body?._meta?.namespace).toEqual('custom-namespace'); + expect(body?.priority).toEqual(16); + }); + + it('should create index template with template overrides', () => { + const { body } = getIndexTemplate({ + ...defaultParams, + template: { + settings: { + number_of_shards: 1, + }, + mappings: { + dynamic: true, + }, + lifecycle: { + data_retention: '30d', + }, + }, + }); + + expect(body?.template?.settings).toEqual({ + hidden: true, + auto_expand_replicas: '0-1', + 'index.mapping.ignore_malformed': true, + 'index.mapping.total_fields.limit': defaultParams.totalFieldsLimit, + number_of_shards: 1, + }); + + expect(body?.template?.mappings).toEqual({ + dynamic: true, + _meta: { + kibana: { + version: defaultParams.kibanaVersion, + }, + managed: true, + namespace: 'default', + }, + }); + + expect(body?.template?.lifecycle).toEqual({ + data_retention: '30d', + }); + }); +}); + +describe('getComponentTemplate', () => { + const defaultParams = { + name: 'componentTemplateName', + kibanaVersion: '8.12.1', + fieldMap: { + field1: { type: 'text', required: true }, + field2: { type: 'keyword', required: false }, + }, + }; + + it('should create component template with given parameters and defaults', () => { + const componentTemplate = getComponentTemplate(defaultParams); + + expect(componentTemplate).toEqual({ + name: defaultParams.name, + _meta: { + managed: true, + }, + template: { + settings: { + number_of_shards: 1, + 'index.mapping.total_fields.limit': 1500, + }, + mappings: { + dynamic: 'strict', + properties: { + field1: { + type: 'text', + }, + field2: { + type: 'keyword', + }, + }, + }, + }, + }); + }); + + it('should create component template with custom settings', () => { + const { template } = getComponentTemplate({ + ...defaultParams, + settings: { + number_of_shards: 1, + number_of_replicas: 1, + }, + }); + + expect(template.settings).toEqual({ + number_of_shards: 1, + number_of_replicas: 1, + 'index.mapping.total_fields.limit': 1500, + }); + }); + + it('should create component template with custom dynamic', () => { + const { template } = getComponentTemplate({ ...defaultParams, dynamic: true }); + expect(template.mappings?.dynamic).toEqual(true); + }); +}); diff --git a/packages/kbn-data-stream-adapter/src/resource_installer_utils.ts b/packages/kbn-data-stream-adapter/src/resource_installer_utils.ts new file mode 100644 index 0000000000000..456be9ad8e86f --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/resource_installer_utils.ts @@ -0,0 +1,106 @@ +/* + * 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, + Metadata, +} from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; +import type { + ClusterPutComponentTemplateRequest, + IndicesIndexSettings, + IndicesPutIndexTemplateIndexTemplateMapping, +} from '@elastic/elasticsearch/lib/api/types'; +import type { FieldMap } from './field_maps/types'; +import { mappingFromFieldMap } from './field_maps/mapping_from_field_map'; + +interface GetComponentTemplateOpts { + name: string; + fieldMap: FieldMap; + settings?: IndicesIndexSettings; + dynamic?: 'strict' | boolean; +} + +export const getComponentTemplate = ({ + name, + fieldMap, + settings, + dynamic = 'strict', +}: GetComponentTemplateOpts): ClusterPutComponentTemplateRequest => ({ + name, + _meta: { + managed: true, + }, + template: { + settings: { + number_of_shards: 1, + 'index.mapping.total_fields.limit': + Math.ceil(Object.keys(fieldMap).length / 1000) * 1000 + 500, + ...settings, + }, + mappings: mappingFromFieldMap(fieldMap, dynamic), + }, +}); + +interface GetIndexTemplateOpts { + name: string; + indexPatterns: string[]; + kibanaVersion: string; + totalFieldsLimit: number; + componentTemplateRefs?: string[]; + namespace?: string; + template?: IndicesPutIndexTemplateIndexTemplateMapping; + hidden?: boolean; +} + +export const getIndexTemplate = ({ + name, + indexPatterns, + kibanaVersion, + totalFieldsLimit, + componentTemplateRefs, + namespace = 'default', + template = {}, + hidden = true, +}: GetIndexTemplateOpts): IndicesPutIndexTemplateRequest => { + const indexMetadata: Metadata = { + kibana: { + version: kibanaVersion, + }, + managed: true, + namespace, + }; + + return { + name, + body: { + data_stream: { hidden }, + index_patterns: indexPatterns, + composed_of: componentTemplateRefs, + template: { + ...template, + settings: { + hidden, + auto_expand_replicas: '0-1', + 'index.mapping.ignore_malformed': true, + 'index.mapping.total_fields.limit': totalFieldsLimit, + ...template.settings, + }, + mappings: { + dynamic: false, + _meta: indexMetadata, + ...template.mappings, + }, + }, + _meta: indexMetadata, + + // By setting the priority to namespace.length, we ensure that if one namespace is a prefix of another namespace + // then newly created indices will use the matching template with the *longest* namespace + priority: namespace.length, + }, + }; +}; diff --git a/packages/kbn-data-stream-adapter/src/retry_transient_es_errors.test.ts b/packages/kbn-data-stream-adapter/src/retry_transient_es_errors.test.ts new file mode 100644 index 0000000000000..f7d6cca8c5a07 --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/retry_transient_es_errors.test.ts @@ -0,0 +1,78 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { loggingSystemMock } from '@kbn/core/server/mocks'; +import { errors as EsErrors, type DiagnosticResult } from '@elastic/elasticsearch'; +import { retryTransientEsErrors } from './retry_transient_es_errors'; + +const mockLogger = loggingSystemMock.createLogger(); + +// mock setTimeout to avoid waiting in tests and prevent test flakiness +global.setTimeout = jest.fn((cb) => jest.fn(cb())) as unknown as typeof global.setTimeout; + +describe('retryTransientEsErrors', () => { + beforeEach(() => { + jest.clearAllMocks(); + }); + + it.each([ + { error: new EsErrors.ConnectionError('test error'), errorType: 'ConnectionError' }, + { + error: new EsErrors.NoLivingConnectionsError('test error', {} as DiagnosticResult), + errorType: 'NoLivingConnectionsError', + }, + { error: new EsErrors.TimeoutError('test error'), errorType: 'TimeoutError' }, + { + error: new EsErrors.ResponseError({ statusCode: 503 } as DiagnosticResult), + errorType: 'ResponseError (Unavailable)', + }, + { + error: new EsErrors.ResponseError({ statusCode: 408 } as DiagnosticResult), + errorType: 'ResponseError (RequestTimeout)', + }, + { + error: new EsErrors.ResponseError({ statusCode: 410 } as DiagnosticResult), + errorType: 'ResponseError (Gone)', + }, + ])('should retry $errorType', async ({ error }) => { + const mockFn = jest.fn(); + mockFn.mockRejectedValueOnce(error); + mockFn.mockResolvedValueOnce('success'); + + const result = await retryTransientEsErrors(mockFn, { logger: mockLogger }); + + expect(result).toEqual('success'); + expect(mockFn).toHaveBeenCalledTimes(2); + expect(mockLogger.warn).toHaveBeenCalledTimes(1); + expect(mockLogger.error).not.toHaveBeenCalled(); + }); + + it('should throw non-transient errors', async () => { + const error = new EsErrors.ResponseError({ statusCode: 429 } as DiagnosticResult); + const mockFn = jest.fn(); + mockFn.mockRejectedValueOnce(error); + + await expect(retryTransientEsErrors(mockFn, { logger: mockLogger })).rejects.toEqual(error); + + expect(mockFn).toHaveBeenCalledTimes(1); + expect(mockLogger.warn).not.toHaveBeenCalled(); + }); + + it('should throw if max retries exceeded', async () => { + const error = new EsErrors.ConnectionError('test error'); + const mockFn = jest.fn(); + mockFn.mockRejectedValueOnce(error); + mockFn.mockRejectedValueOnce(error); + + await expect( + retryTransientEsErrors(mockFn, { logger: mockLogger, attempt: 2 }) + ).rejects.toEqual(error); + + expect(mockFn).toHaveBeenCalledTimes(2); + expect(mockLogger.warn).toHaveBeenCalledTimes(1); + }); +}); diff --git a/packages/kbn-data-stream-adapter/src/retry_transient_es_errors.ts b/packages/kbn-data-stream-adapter/src/retry_transient_es_errors.ts new file mode 100644 index 0000000000000..3b436298e5c8d --- /dev/null +++ b/packages/kbn-data-stream-adapter/src/retry_transient_es_errors.ts @@ -0,0 +1,54 @@ +/* + * 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 { Logger } from '@kbn/core/server'; +import { errors as EsErrors } from '@elastic/elasticsearch'; + +const MAX_ATTEMPTS = 3; + +const retryResponseStatuses = [ + 503, // ServiceUnavailable + 408, // RequestTimeout + 410, // Gone +]; + +const isRetryableError = (e: Error) => + e instanceof EsErrors.NoLivingConnectionsError || + e instanceof EsErrors.ConnectionError || + e instanceof EsErrors.TimeoutError || + (e instanceof EsErrors.ResponseError && + e?.statusCode && + retryResponseStatuses.includes(e.statusCode)); + +const delay = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); + +export const retryTransientEsErrors = async ( + esCall: () => Promise, + { logger, attempt = 0 }: { logger: Logger; attempt?: number } +): Promise => { + try { + return await esCall(); + } catch (e) { + if (attempt < MAX_ATTEMPTS && isRetryableError(e)) { + const retryCount = attempt + 1; + const retryDelaySec: number = Math.min(Math.pow(2, retryCount), 30); // 2s, 4s, 8s, 16s, 30s, 30s, 30s... + + logger.warn( + `Retrying Elasticsearch operation after [${retryDelaySec}s] due to error: ${e.toString()} ${ + e.stack + }` + ); + + // delay with some randomness + await delay(retryDelaySec * 1000 * Math.random()); + return retryTransientEsErrors(esCall, { logger, attempt: retryCount }); + } + + throw e; + } +}; diff --git a/packages/kbn-data-stream-adapter/tsconfig.json b/packages/kbn-data-stream-adapter/tsconfig.json new file mode 100644 index 0000000000000..f09d2b4354d02 --- /dev/null +++ b/packages/kbn-data-stream-adapter/tsconfig.json @@ -0,0 +1,24 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + "react", + "@emotion/react/types/css-prop", + "@testing-library/jest-dom", + "@testing-library/react" + ] + }, + "include": ["**/*.ts", "**/*.tsx"], + "kbn_references": [ + "@kbn/core", + "@kbn/std", + "@kbn/ecs", + "@kbn/alerts-as-data-utils", + "@kbn/safer-lodash-set", + "@kbn/logging-mocks", + ], + "exclude": ["target/**/*"] +} diff --git a/packages/kbn-docs-utils/index.ts b/packages/kbn-docs-utils/index.ts index 2df2b1f807ba9..111234b0044c1 100644 --- a/packages/kbn-docs-utils/index.ts +++ b/packages/kbn-docs-utils/index.ts @@ -7,3 +7,5 @@ */ export { runBuildApiDocsCli } from './src'; + +export { findPlugins, findTeamPlugins } from './src/find_plugins'; diff --git a/packages/kbn-docs-utils/src/find_plugins.ts b/packages/kbn-docs-utils/src/find_plugins.ts index c77816ba3b6c8..8fbe47ad90d02 100644 --- a/packages/kbn-docs-utils/src/find_plugins.ts +++ b/packages/kbn-docs-utils/src/find_plugins.ts @@ -33,7 +33,7 @@ function toApiScope(pkg: Package): ApiScope { } function toPluginOrPackage(pkg: Package): PluginOrPackage { - return { + const result = { id: pkg.isPlugin() ? pkg.manifest.plugin.id : pkg.manifest.id, directory: Path.resolve(REPO_ROOT, pkg.normalizedRepoRelativeDir), manifestPath: Path.resolve(REPO_ROOT, pkg.normalizedRepoRelativeDir, 'kibana.jsonc'), @@ -50,6 +50,20 @@ function toPluginOrPackage(pkg: Package): PluginOrPackage { }, scope: toApiScope(pkg), }; + + if (pkg.isPlugin()) { + return { + ...result, + manifest: { + ...result.manifest, + requiredPlugins: pkg.manifest.plugin.requiredPlugins || [], + optionalPlugins: pkg.manifest.plugin.optionalPlugins || [], + requiredBundles: pkg.manifest.plugin.requiredBundles || [], + }, + }; + } + + return result; } export function findPlugins(pluginOrPackageFilter?: string[]): PluginOrPackage[] { @@ -78,6 +92,18 @@ export function findPlugins(pluginOrPackageFilter?: string[]): PluginOrPackage[] } } +export function findTeamPlugins(team: string): PluginOrPackage[] { + const packages = getPackages(REPO_ROOT); + const plugins = packages.filter( + getPluginPackagesFilter({ + examples: false, + testPlugins: false, + }) + ); + + return [...plugins.filter((p) => p.manifest.owner.includes(team)).map(toPluginOrPackage)]; +} + /** * Helper to find packages. */ diff --git a/packages/kbn-docs-utils/src/types.ts b/packages/kbn-docs-utils/src/types.ts index 40faadb8c41f1..1d91d78a7c734 100644 --- a/packages/kbn-docs-utils/src/types.ts +++ b/packages/kbn-docs-utils/src/types.ts @@ -14,6 +14,9 @@ export interface PluginOrPackage { description?: string; owner: { name: string; githubTeam?: string }; serviceFolders: readonly string[]; + requiredBundles?: readonly string[]; + requiredPlugins?: readonly string[]; + optionalPlugins?: readonly string[]; }; isPlugin: boolean; directory: string; diff --git a/packages/kbn-es-query/src/kuery/functions/is.test.ts b/packages/kbn-es-query/src/kuery/functions/is.test.ts index a19c951c184a9..5b52eff548ed3 100644 --- a/packages/kbn-es-query/src/kuery/functions/is.test.ts +++ b/packages/kbn-es-query/src/kuery/functions/is.test.ts @@ -253,6 +253,29 @@ describe('kuery functions', () => { expect(result).toEqual(expected); }); + test('should create a wildcard query with backslashes properly escaped', () => { + const expected = { + bool: { + should: [ + { + wildcard: { + 'machine.os.keyword': { value: '*\\\\*' }, + }, + }, + ], + minimum_should_match: 1, + }, + }; + const node = nodeTypes.function.buildNode( + 'is', + 'machine.os.keyword', + '*\\\\*' + ) as KqlIsFunctionNode; + const result = is.toElasticsearchQuery(node, indexPattern); + + expect(result).toEqual(expected); + }); + test('should support scripted fields', () => { const node = nodeTypes.function.buildNode( 'is', diff --git a/packages/kbn-es-query/src/kuery/functions/is.ts b/packages/kbn-es-query/src/kuery/functions/is.ts index 55bce74973741..46a6acfc56ff9 100644 --- a/packages/kbn-es-query/src/kuery/functions/is.ts +++ b/packages/kbn-es-query/src/kuery/functions/is.ts @@ -159,7 +159,7 @@ export function toElasticsearchQuery( ? { wildcard: { [field.name]: { - value, + value: wildcard.toQueryStringQuery(valueArg), ...(typeof config.caseInsensitive === 'boolean' && { case_insensitive: config.caseInsensitive, }), diff --git a/packages/kbn-es-types/index.ts b/packages/kbn-es-types/index.ts index 40b5ee400b0ed..92a0004aaf4bc 100644 --- a/packages/kbn-es-types/index.ts +++ b/packages/kbn-es-types/index.ts @@ -22,4 +22,5 @@ export type { ESQLColumn, ESQLRow, ESQLSearchReponse, + ESQLSearchParams, } from './src'; diff --git a/packages/kbn-es-types/src/index.ts b/packages/kbn-es-types/src/index.ts index 2acc88f9068a7..3e56bf17603b6 100644 --- a/packages/kbn-es-types/src/index.ts +++ b/packages/kbn-es-types/src/index.ts @@ -15,6 +15,7 @@ import { ESQLColumn, ESQLRow, ESQLSearchReponse, + ESQLSearchParams, } from './search'; export type ESFilter = estypes.QueryDslQueryContainer; @@ -47,4 +48,5 @@ export type { ESQLColumn, ESQLRow, ESQLSearchReponse, + ESQLSearchParams, }; diff --git a/packages/kbn-es-types/src/search.ts b/packages/kbn-es-types/src/search.ts index 71466c322be42..56e2cb56c8f71 100644 --- a/packages/kbn-es-types/src/search.ts +++ b/packages/kbn-es-types/src/search.ts @@ -665,3 +665,13 @@ export interface ESQLSearchReponse { columns: ESQLColumn[]; values: ESQLRow[]; } + +export interface ESQLSearchParams { + // TODO: time_zone support was temporarily removed from ES|QL, + // we will need to add it back in once it is supported again. + // https://github.com/elastic/elasticsearch/pull/102767 + // time_zone?: string; + query: string; + filter?: unknown; + locale?: string; +} diff --git a/packages/kbn-es/index.ts b/packages/kbn-es/index.ts index 68256ca572744..43f417342436b 100644 --- a/packages/kbn-es/index.ts +++ b/packages/kbn-es/index.ts @@ -16,5 +16,7 @@ export { getDockerFileMountPath, verifyDockerInstalled, maybeCreateDockerNetwork, + type ServerlessProjectType, } from './src/utils'; export type { ArtifactLicense } from './src/artifact'; +export { SERVERLESS_ROLES_ROOT_PATH } from './src/paths'; diff --git a/packages/kbn-es/src/paths.ts b/packages/kbn-es/src/paths.ts index 4da4448573384..2ee3ea7c7c205 100644 --- a/packages/kbn-es/src/paths.ts +++ b/packages/kbn-es/src/paths.ts @@ -37,7 +37,10 @@ export const SERVERLESS_SERVICE_TOKENS_PATH = resolve( export const SERVERLESS_USERS_PATH = resolve(__dirname, './serverless_resources/users'); export const SERVERLESS_USERS_ROLES_PATH = resolve(__dirname, './serverless_resources/users_roles'); -export const SERVERLESS_ROLES_PATH = resolve(__dirname, './serverless_resources/roles.yml'); +export const SERVERLESS_ROLES_ROOT_PATH = resolve( + __dirname, + './serverless_resources/project_roles' +); export const SERVERLESS_ROLE_MAPPING_PATH = resolve( __dirname, './serverless_resources/role_mapping.yml' @@ -57,7 +60,6 @@ export const SERVERLESS_IDP_METADATA_PATH = resolve(REPO_ROOT, '.es', 'idp_metad export const SERVERLESS_RESOURCES_PATHS = [ SERVERLESS_OPERATOR_USERS_PATH, SERVERLESS_ROLE_MAPPING_PATH, - SERVERLESS_ROLES_PATH, SERVERLESS_SERVICE_TOKENS_PATH, SERVERLESS_USERS_PATH, SERVERLESS_USERS_ROLES_PATH, diff --git a/packages/kbn-es/src/serverless_resources/README.md b/packages/kbn-es/src/serverless_resources/README.md index 0af28f82a1dec..19d5a0d0fc22b 100644 --- a/packages/kbn-es/src/serverless_resources/README.md +++ b/packages/kbn-es/src/serverless_resources/README.md @@ -4,7 +4,7 @@ The resources in this directory are used for seeding Elasticsearch Serverless im ## Roles -Roles defined in `roles.yml` intended to mock a Serverless deployment. It must be in sync with `project-controller` defined roles and used in real (MKI) environments. In case of some differences tests may pass against Serverless snapshot environment but fail against MKI environments creating confusion. +Roles are defined in `roles.yml` for each project under 'es' | 'oblt' | 'security' folder respectively and intended to mock a Serverless deployment. It must be in sync with `project-controller` defined roles and used in real (MKI) environments. In case of some differences tests may pass against Serverless snapshot environment but fail against MKI environments creating confusion. ### Why `security_roles.json` is here? diff --git a/packages/kbn-es/src/serverless_resources/project_roles/es/roles.yml b/packages/kbn-es/src/serverless_resources/project_roles/es/roles.yml new file mode 100644 index 0000000000000..03cc8a56c17f4 --- /dev/null +++ b/packages/kbn-es/src/serverless_resources/project_roles/es/roles.yml @@ -0,0 +1,43 @@ +# temporarily added for testing purpose +system_indices_superuser: + cluster: ['all'] + indices: + - names: ['*'] + privileges: ['all'] + allow_restricted_indices: true + applications: + - application: '*' + privileges: ['*'] + resources: ['*'] + run_as: ['*'] + +# ----- +# Source: https://github.com/elastic/project-controller/blob/main/internal/project/esproject/config/roles.yml +# ----- +viewer: + cluster: ['manage_own_api_key', 'read_pipeline'] + indices: + - names: + - '*' + privileges: + - 'read' + - 'view_index_metadata' + applications: + - application: 'kibana-.kibana' + privileges: + - 'read' + resources: + - '*' +developer: + cluster: ['all'] + indices: + - names: + - '*' + privileges: + - 'all' + applications: + - application: 'kibana-.kibana' + privileges: + - 'all' + resources: + - '*' diff --git a/packages/kbn-es/src/serverless_resources/project_roles/oblt/roles.yml b/packages/kbn-es/src/serverless_resources/project_roles/oblt/roles.yml new file mode 100644 index 0000000000000..2bd6ff073f84f --- /dev/null +++ b/packages/kbn-es/src/serverless_resources/project_roles/oblt/roles.yml @@ -0,0 +1,91 @@ +# temporarily added for testing purpose +system_indices_superuser: + cluster: ['all'] + indices: + - names: ['*'] + privileges: ['all'] + allow_restricted_indices: true + applications: + - application: '*' + privileges: ['*'] + resources: ['*'] + run_as: ['*'] + +# ----- +# Source: https://github.com/elastic/project-controller/blob/main/internal/project/security/config/roles.yml +# ----- +viewer: + cluster: [] + indices: + - names: + - '/~(([.]|ilm-history-).*)/' + privileges: + - 'read' + - 'view_index_metadata' + allow_restricted_indices: false + - names: + - '.siem-signals*' + - '.lists-*' + - '.items-*' + privileges: + - 'read' + - 'view_index_metadata' + allow_restricted_indices: false + - names: + - '.alerts*' + - '.preview.alerts*' + privileges: + - 'read' + - 'view_index_metadata' + allow_restricted_indices: false + applications: + - application: 'kibana-.kibana' + privileges: + - 'read' + resources: + - '*' + run_as: [] +editor: + cluster: [] + indices: + - names: + - '/~(([.]|ilm-history-).*)/' + privileges: + - 'read' + - 'view_index_metadata' + allow_restricted_indices: false + - names: + - 'observability-annotations' + privileges: + - 'read' + - 'view_index_metadata' + - 'write' + allow_restricted_indices: false + - names: + - '.siem-signals*' + - '.lists-*' + - '.items-*' + privileges: + - 'read' + - 'view_index_metadata' + - 'write' + - 'maintenance' + allow_restricted_indices: false + - names: + - '.internal.alerts*' + - '.alerts*' + - '.internal.preview.alerts*' + - '.preview.alerts*' + privileges: + - 'read' + - 'view_index_metadata' + - 'write' + - 'maintenance' + allow_restricted_indices: false + applications: + - application: 'kibana-.kibana' + privileges: + - 'all' + resources: + - '*' + run_as: [] 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 new file mode 100644 index 0000000000000..439e782003b2d --- /dev/null +++ b/packages/kbn-es/src/serverless_resources/project_roles/security/roles.yml @@ -0,0 +1,738 @@ +# temporarily added for testing purpose +system_indices_superuser: + cluster: ['all'] + indices: + - names: ['*'] + privileges: ['all'] + allow_restricted_indices: true + applications: + - application: '*' + privileges: ['*'] + resources: ['*'] + run_as: ['*'] + +# ----- +# Source: https://github.com/elastic/project-controller/blob/main/internal/project/security/config/roles.yml +# ----- +# modeled after the t1_analyst minus osquery run saved queries privilege +viewer: + cluster: [] + indices: + - names: + - '.siem-signals*' + - '.lists-*' + - '.items-*' + privileges: + - 'read' + - 'view_index_metadata' + allow_restricted_indices: false + - names: + - '.alerts*' + - '.preview.alerts*' + privileges: + - 'read' + - 'view_index_metadata' + allow_restricted_indices: false + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - metrics-endpoint.metadata_current_* + - logstash-* + - '.fleet-agents*' + - '.fleet-actions*' + - 'risk-score.risk-score-*' + - '.asset-criticality.asset-criticality-*' + privileges: + - read + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.read + - feature_siem.read_alerts + - feature_siem.endpoint_list_read + - feature_securitySolutionCases.read + - feature_securitySolutionAssistant.all + - feature_actions.read + - feature_builtInAlerts.read + - feature_osquery.read + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + run_as: [] + +# modeled after t3_analyst +editor: + cluster: [] + indices: + - names: + - '.siem-signals*' + - '.lists-*' + - '.items-*' + privileges: + - 'read' + - 'view_index_metadata' + - 'write' + - 'maintenance' + allow_restricted_indices: false + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + privileges: + - read + - write + - names: + - '.internal.alerts*' + - '.alerts*' + - '.internal.preview.alerts*' + - '.preview.alerts*' + - 'risk-score.risk-score-*' + privileges: + - 'read' + - 'view_index_metadata' + - 'write' + - 'maintenance' + - names: + - '.asset-criticality.asset-criticality-*' + privileges: + - 'read' + - 'write' + allow_restricted_indices: false + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all + - feature_siem.policy_management_read # Elastic Defend Policy Management + - feature_siem.host_isolation_all + - feature_siem.process_operations_all + - feature_siem.actions_log_management_all # Response actions history + - feature_siem.file_operations_all + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.read + - feature_builtInAlerts.all + - feature_osquery.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + run_as: [] + +t1_analyst: + cluster: + indices: + - names: + - '.alerts-security*' + - '.siem-signals-*' + privileges: + - read + - write + - maintenance + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - metrics-endpoint.metadata_current_* + - '.fleet-agents*' + - '.fleet-actions*' + - risk-score.risk-score-* + - .asset-criticality.asset-criticality-* + privileges: + - read + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.read + - feature_siem.read_alerts + - feature_siem.endpoint_list_read + - feature_securitySolutionCases.read + - feature_securitySolutionAssistant.all + - feature_actions.read + - feature_builtInAlerts.read + - feature_osquery.read + - feature_osquery.run_saved_queries + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +t2_analyst: + cluster: + indices: + - names: + - .alerts-security* + - .siem-signals-* + privileges: + - read + - write + - maintenance + - names: + - .lists* + - .items* + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - metrics-endpoint.metadata_current_* + - .fleet-agents* + - .fleet-actions* + - risk-score.risk-score-* + privileges: + - read + - names: + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.read + - feature_siem.read_alerts + - feature_siem.endpoint_list_read + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.read + - feature_builtInAlerts.read + - feature_osquery.read + - feature_osquery.run_saved_queries + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +t3_analyst: + cluster: + indices: + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + - names: + - .alerts-security* + - .siem-signals-* + privileges: + - read + - write + - maintenance + - names: + - .lists* + - .items* + privileges: + - read + - write + - names: + - metrics-endpoint.metadata_current_* + - .fleet-agents* + - .fleet-actions* + - risk-score.risk-score-* + privileges: + - read + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all + - feature_siem.policy_management_read # Elastic Defend Policy Management + - feature_siem.host_isolation_all + - feature_siem.process_operations_all + - feature_siem.actions_log_management_all # Response actions history + - feature_siem.file_operations_all + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.read + - feature_builtInAlerts.all + - feature_osquery.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +threat_intelligence_analyst: + cluster: + indices: + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + privileges: + - read + - names: + - .lists* + - .items* + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + - names: + - .alerts-security* + - .siem-signals-* + privileges: + - read + - write + - maintenance + - names: + - metrics-endpoint.metadata_current_* + - .fleet-agents* + - .fleet-actions* + - risk-score.risk-score-* + privileges: + - read + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.all + - feature_siem.endpoint_list_read + - feature_siem.blocklist_all + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.read + - feature_builtInAlerts.read + - feature_osquery.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +rule_author: + cluster: + indices: + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + - names: + - .alerts-security* + - .siem-signals-* + - .internal.preview.alerts-security* + - .preview.alerts-security* + privileges: + - read + - write + - maintenance + - view_index_metadata + - names: + - .lists* + - .items* + privileges: + - read + - write + - names: + - metrics-endpoint.metadata_current_* + - .fleet-agents* + - .fleet-actions* + - risk-score.risk-score-* + privileges: + - read + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_read + - feature_siem.blocklist_all # Elastic Defend Policy Management + - feature_siem.actions_log_management_read + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.read + - feature_builtInAlerts.all + - feature_osquery.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +soc_manager: + cluster: + indices: + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + - names: + - .alerts-security* + - .siem-signals-* + - .preview.alerts-security* + - .internal.preview.alerts-security* + privileges: + - read + - write + - manage + - names: + - .lists* + - .items* + privileges: + - read + - write + - names: + - metrics-endpoint.metadata_current_* + - .fleet-agents* + - .fleet-actions* + - risk-score.risk-score-* + privileges: + - read + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all + - feature_siem.host_isolation_all + - feature_siem.process_operations_all + - feature_siem.actions_log_management_all + - feature_siem.file_operations_all + - feature_siem.execute_operations_all + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_osquery.all + - feature_indexPatterns.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +detections_admin: + cluster: ['manage_index_templates', 'manage_transform'] + indices: + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - .lists* + - .items* + - .alerts-security* + - .siem-signals-* + - .preview.alerts-security* + - .internal.preview.alerts-security* + privileges: + - read + - write + - manage + - names: + - metrics-endpoint.metadata_current_* + - .fleet-agents* + - .fleet-actions* + privileges: + - read + - names: + - risk-score.risk-score-* + privileges: + - all + - names: + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.all + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_dev_tools.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +platform_engineer: + cluster: + - manage + indices: + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - .lists* + - .items* + - .alerts-security* + - .siem-signals-* + - .preview.alerts-security* + - .internal.preview.alerts-security* + - risk-score.risk-score-* + privileges: + - all + - names: + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.all + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all # Elastic Defend Policy Management + - feature_siem.actions_log_management_read + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_fleet.all + - feature_fleetv2.all + - feature_osquery.all + - feature_indexPatterns.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +endpoint_operations_analyst: + cluster: + indices: + - names: + - metrics-endpoint.metadata_current_* + - .fleet-agents* + - .fleet-actions* + privileges: + - read + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - .lists* + - .items* + - risk-score.risk-score-* + privileges: + - read + - names: + - .alerts-security* + - .siem-signals-* + - .preview.alerts-security* + - .internal.preview.alerts-security* + privileges: + - read + - write + - maintenance + - names: + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.read + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all + - feature_siem.host_isolation_all + - feature_siem.process_operations_all + - feature_siem.actions_log_management_all # Response History + - feature_siem.file_operations_all + - feature_siem.execute_operations_all # Execute + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_osquery.all + - feature_fleet.all + - feature_fleetv2.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' + +endpoint_policy_manager: + cluster: + indices: + - names: + - metrics-endpoint.metadata_current_* + - .fleet-agents* + - .fleet-actions* + privileges: + - read + - names: + - apm-*-transaction* + - traces-apm* + - auditbeat-* + - endgame-* + - filebeat-* + - logs-* + - packetbeat-* + - winlogbeat-* + - logstash-* + - risk-score.risk-score-* + privileges: + - read + - names: + - .lists* + - .items* + - .asset-criticality.asset-criticality-* + privileges: + - read + - write + - names: + - .alerts-security* + - .siem-signals-* + - .preview.alerts-security* + - .internal.preview.alerts-security* + privileges: + - read + - write + - manage + applications: + - application: 'kibana-.kibana' + privileges: + - feature_ml.all + - feature_siem.all + - feature_siem.read_alerts + - feature_siem.crud_alerts + - feature_siem.policy_management_all + - feature_siem.endpoint_list_all + - feature_siem.trusted_applications_all + - feature_siem.event_filters_all + - feature_siem.host_isolation_exceptions_all + - feature_siem.blocklist_all # Elastic Defend Policy Management + - feature_securitySolutionCases.all + - feature_securitySolutionAssistant.all + - feature_actions.all + - feature_builtInAlerts.all + - feature_osquery.all + - feature_fleet.all + - feature_fleetv2.all + - feature_discover.all + - feature_dashboard.all + - feature_maps.all + - feature_visualize.all + resources: '*' diff --git a/packages/kbn-es/src/serverless_resources/roles.yml b/packages/kbn-es/src/serverless_resources/roles.yml deleted file mode 100644 index bdd135366b3a8..0000000000000 --- a/packages/kbn-es/src/serverless_resources/roles.yml +++ /dev/null @@ -1,702 +0,0 @@ -system_indices_superuser: - cluster: ["all"] - indices: - - names: ["*"] - privileges: ["all"] - allow_restricted_indices: true - applications: - - application: "*" - privileges: ["*"] - resources: ["*"] - run_as: ["*"] - -# ----- -# Source: https://github.com/elastic/project-controller/blob/main/internal/project/observability/config/roles.yml -# and: https://github.com/elastic/project-controller/blob/main/internal/project/esproject/config/roles.yml -# ----- -viewer: - cluster: [] - indices: - - names: - - "*" - privileges: - - read - - names: - - "/~(([.]|ilm-history-).*)/" - privileges: - - "read" - - "view_index_metadata" - allow_restricted_indices: false - - names: - - ".siem-signals*" - - ".lists-*" - - ".items-*" - privileges: - - "read" - - "view_index_metadata" - allow_restricted_indices: false - - names: - - ".alerts*" - - ".preview.alerts*" - privileges: - - "read" - - "view_index_metadata" - allow_restricted_indices: false - applications: - - application: "kibana-.kibana" - privileges: - - "read" - resources: - - "*" - run_as: [] -editor: - cluster: [] - indices: - - names: - - "/~(([.]|ilm-history-).*)/" - privileges: - - "read" - - "view_index_metadata" - allow_restricted_indices: false - - names: - - "observability-annotations" - privileges: - - "read" - - "view_index_metadata" - - "write" - allow_restricted_indices: false - - names: - - ".siem-signals*" - - ".lists-*" - - ".items-*" - privileges: - - "read" - - "view_index_metadata" - - "write" - - "maintenance" - allow_restricted_indices: false - - names: - - ".internal.alerts*" - - ".alerts*" - - ".internal.preview.alerts*" - - ".preview.alerts*" - privileges: - - "read" - - "view_index_metadata" - - "write" - - "maintenance" - allow_restricted_indices: false - applications: - - application: "kibana-.kibana" - privileges: - - "all" - resources: - - "*" - run_as: [] - -# source: https://github.com/elastic/project-controller/blob/main/internal/project/security/config/roles.yml - -t1_analyst: - cluster: - indices: - - names: - - ".alerts-security*" - - ".siem-signals-*" - privileges: - - read - - write - - maintenance - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - metrics-endpoint.metadata_current_* - - ".fleet-agents*" - - ".fleet-actions*" - - risk-score.risk-score-* - - .asset-criticality.asset-criticality-* - privileges: - - read - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.read - - feature_siem.read - - feature_siem.read_alerts - - feature_siem.endpoint_list_read - - feature_securitySolutionCases.read - - feature_securitySolutionAssistant.all - - feature_actions.read - - feature_builtInAlerts.read - - feature_osquery.read - - feature_osquery.run_saved_queries - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -t2_analyst: - cluster: - indices: - - names: - - .alerts-security* - - .siem-signals-* - privileges: - - read - - write - - maintenance - - names: - - .lists* - - .items* - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - metrics-endpoint.metadata_current_* - - .fleet-agents* - - .fleet-actions* - - risk-score.risk-score-* - privileges: - - read - - names: - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.read - - feature_siem.read - - feature_siem.read_alerts - - feature_siem.endpoint_list_read - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.read - - feature_builtInAlerts.read - - feature_osquery.read - - feature_osquery.run_saved_queries - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -t3_analyst: - cluster: - indices: - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - - names: - - .alerts-security* - - .siem-signals-* - privileges: - - read - - write - - maintenance - - names: - - .lists* - - .items* - privileges: - - read - - write - - names: - - metrics-endpoint.metadata_current_* - - .fleet-agents* - - .fleet-actions* - - risk-score.risk-score-* - privileges: - - read - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.read - - feature_siem.all - - feature_siem.read_alerts - - feature_siem.crud_alerts - - feature_siem.endpoint_list_all - - feature_siem.trusted_applications_all - - feature_siem.event_filters_all - - feature_siem.host_isolation_exceptions_all - - feature_siem.blocklist_all - - feature_siem.policy_management_read # Elastic Defend Policy Management - - feature_siem.host_isolation_all - - feature_siem.process_operations_all - - feature_siem.actions_log_management_all # Response actions history - - feature_siem.file_operations_all - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.read - - feature_builtInAlerts.all - - feature_osquery.all - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -threat_intelligence_analyst: - cluster: - indices: - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - privileges: - - read - - names: - - .lists* - - .items* - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - - names: - - .alerts-security* - - .siem-signals-* - privileges: - - read - - write - - maintenance - - names: - - metrics-endpoint.metadata_current_* - - .fleet-agents* - - .fleet-actions* - - risk-score.risk-score-* - privileges: - - read - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.read - - feature_siem.all - - feature_siem.endpoint_list_read - - feature_siem.blocklist_all - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.read - - feature_builtInAlerts.read - - feature_osquery.all - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -rule_author: - cluster: - indices: - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - - names: - - .alerts-security* - - .siem-signals-* - - .internal.preview.alerts-security* - - .preview.alerts-security* - privileges: - - read - - write - - maintenance - - view_index_metadata - - names: - - .lists* - - .items* - privileges: - - read - - write - - names: - - metrics-endpoint.metadata_current_* - - .fleet-agents* - - .fleet-actions* - - risk-score.risk-score-* - privileges: - - read - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.read - - feature_siem.all - - feature_siem.read_alerts - - feature_siem.crud_alerts - - feature_siem.policy_management_all - - feature_siem.endpoint_list_all - - feature_siem.trusted_applications_all - - feature_siem.event_filters_all - - feature_siem.host_isolation_exceptions_read - - feature_siem.blocklist_all # Elastic Defend Policy Management - - feature_siem.actions_log_management_read - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.read - - feature_builtInAlerts.all - - feature_osquery.all - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -soc_manager: - cluster: - indices: - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - - names: - - .alerts-security* - - .siem-signals-* - - .preview.alerts-security* - - .internal.preview.alerts-security* - privileges: - - read - - write - - manage - - names: - - .lists* - - .items* - privileges: - - read - - write - - names: - - metrics-endpoint.metadata_current_* - - .fleet-agents* - - .fleet-actions* - - risk-score.risk-score-* - privileges: - - read - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.read - - feature_siem.all - - feature_siem.read_alerts - - feature_siem.crud_alerts - - feature_siem.policy_management_all - - feature_siem.endpoint_list_all - - feature_siem.trusted_applications_all - - feature_siem.event_filters_all - - feature_siem.host_isolation_exceptions_all - - feature_siem.blocklist_all - - feature_siem.host_isolation_all - - feature_siem.process_operations_all - - feature_siem.actions_log_management_all - - feature_siem.file_operations_all - - feature_siem.execute_operations_all - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.all - - feature_builtInAlerts.all - - feature_osquery.all - - feature_indexPatterns.all - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -detections_admin: - cluster: ["manage_index_templates", "manage_transform"] - indices: - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - .lists* - - .items* - - .alerts-security* - - .siem-signals-* - - .preview.alerts-security* - - .internal.preview.alerts-security* - privileges: - - read - - write - - manage - - names: - - metrics-endpoint.metadata_current_* - - .fleet-agents* - - .fleet-actions* - privileges: - - read - - names: - - risk-score.risk-score-* - privileges: - - all - - names: - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.all - - feature_siem.all - - feature_siem.read_alerts - - feature_siem.crud_alerts - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.all - - feature_builtInAlerts.all - - feature_dev_tools.all - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -platform_engineer: - cluster: - - manage - indices: - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - .lists* - - .items* - - .alerts-security* - - .siem-signals-* - - .preview.alerts-security* - - .internal.preview.alerts-security* - - risk-score.risk-score-* - privileges: - - all - - names: - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.all - - feature_siem.all - - feature_siem.read_alerts - - feature_siem.crud_alerts - - feature_siem.policy_management_all - - feature_siem.endpoint_list_all - - feature_siem.trusted_applications_all - - feature_siem.event_filters_all - - feature_siem.host_isolation_exceptions_all - - feature_siem.blocklist_all # Elastic Defend Policy Management - - feature_siem.actions_log_management_read - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.all - - feature_builtInAlerts.all - - feature_fleet.all - - feature_fleetv2.all - - feature_osquery.all - - feature_indexPatterns.all - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -endpoint_operations_analyst: - cluster: - indices: - - names: - - metrics-endpoint.metadata_current_* - - .fleet-agents* - - .fleet-actions* - privileges: - - read - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - .lists* - - .items* - - risk-score.risk-score-* - privileges: - - read - - names: - - .alerts-security* - - .siem-signals-* - - .preview.alerts-security* - - .internal.preview.alerts-security* - privileges: - - read - - write - - maintenance - - names: - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.read - - feature_siem.all - - feature_siem.read_alerts - - feature_siem.policy_management_all - - feature_siem.endpoint_list_all - - feature_siem.trusted_applications_all - - feature_siem.event_filters_all - - feature_siem.host_isolation_exceptions_all - - feature_siem.blocklist_all - - feature_siem.host_isolation_all - - feature_siem.process_operations_all - - feature_siem.actions_log_management_all # Response History - - feature_siem.file_operations_all - - feature_siem.execute_operations_all # Execute - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.all - - feature_builtInAlerts.all - - feature_osquery.all - - feature_fleet.all - - feature_fleetv2.all - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" - -endpoint_policy_manager: - cluster: - indices: - - names: - - metrics-endpoint.metadata_current_* - - .fleet-agents* - - .fleet-actions* - privileges: - - read - - names: - - apm-*-transaction* - - traces-apm* - - auditbeat-* - - endgame-* - - filebeat-* - - logs-* - - packetbeat-* - - winlogbeat-* - - risk-score.risk-score-* - privileges: - - read - - names: - - .lists* - - .items* - - .asset-criticality.asset-criticality-* - privileges: - - read - - write - - names: - - .alerts-security* - - .siem-signals-* - - .preview.alerts-security* - - .internal.preview.alerts-security* - privileges: - - read - - write - - manage - applications: - - application: "kibana-.kibana" - privileges: - - feature_ml.all - - feature_siem.all - - feature_siem.read_alerts - - feature_siem.crud_alerts - - feature_siem.policy_management_all - - feature_siem.endpoint_list_all - - feature_siem.trusted_applications_all - - feature_siem.event_filters_all - - feature_siem.host_isolation_exceptions_all - - feature_siem.blocklist_all # Elastic Defend Policy Management - - feature_securitySolutionCases.all - - feature_securitySolutionAssistant.all - - feature_actions.all - - feature_builtInAlerts.all - - feature_osquery.all - - feature_fleet.all - - feature_fleetv2.all - - feature_discover.all - - feature_dashboard.all - - feature_canvas.all - - feature_graph.all - - feature_maps.all - - feature_visualize.all - resources: "*" diff --git a/packages/kbn-es/src/utils/docker.test.ts b/packages/kbn-es/src/utils/docker.test.ts index 122914c3fa667..4ee0f68fce782 100644 --- a/packages/kbn-es/src/utils/docker.test.ts +++ b/packages/kbn-es/src/utils/docker.test.ts @@ -41,7 +41,7 @@ import { } from '../paths'; import * as waitClusterUtil from './wait_until_cluster_ready'; import * as waitForSecurityIndexUtil from './wait_for_security_index'; -import * as mockIdpPluginUtil from '@kbn/mock-idp-plugin/common'; +import * as mockIdpPluginUtil from '@kbn/mock-idp-utils'; jest.mock('execa'); const execa = jest.requireMock('execa'); @@ -59,7 +59,7 @@ jest.mock('./wait_for_security_index', () => ({ waitForSecurityIndex: jest.fn(), })); -jest.mock('@kbn/mock-idp-plugin/common'); +jest.mock('@kbn/mock-idp-utils'); const log = new ToolingLog(); const logWriter = new ToolingLogCollectingWriter(); @@ -583,7 +583,7 @@ describe('setupServerlessVolumes()', () => { }); }).rejects.toThrow( 'Unsupported ES serverless --resources value(s):\n /absolute/path/invalid\n\n' + - 'Valid resources: operator_users.yml | role_mapping.yml | roles.yml | service_tokens | users | users_roles' + 'Valid resources: operator_users.yml | role_mapping.yml | service_tokens | users | users_roles | roles.yml' ); }); }); diff --git a/packages/kbn-es/src/utils/docker.ts b/packages/kbn-es/src/utils/docker.ts index 8273d0267b319..4f9538528f4d2 100644 --- a/packages/kbn-es/src/utils/docker.ts +++ b/packages/kbn-es/src/utils/docker.ts @@ -24,7 +24,7 @@ import { MOCK_IDP_ATTRIBUTE_NAME, ensureSAMLRoleMapping, createMockIdpMetadata, -} from '@kbn/mock-idp-plugin/common'; +} from '@kbn/mock-idp-utils'; import { waitForSecurityIndex } from './wait_for_security_index'; import { createCliError } from '../errors'; @@ -37,6 +37,7 @@ import { SERVERLESS_CONFIG_PATH, SERVERLESS_FILES_PATH, SERVERLESS_SECRETS_SSL_PATH, + SERVERLESS_ROLES_ROOT_PATH, } from '../paths'; import { ELASTIC_SERVERLESS_SUPERUSER, @@ -58,6 +59,13 @@ interface BaseOptions extends ImageOptions { files?: string | string[]; } +const serverlessProjectTypes = new Set(['es', 'oblt', 'security']); +const isServerlessProjectType = (value: string): value is ServerlessProjectType => { + return serverlessProjectTypes.has(value); +}; + +export type ServerlessProjectType = 'es' | 'oblt' | 'security'; + export interface DockerOptions extends EsClusterExecOptions, BaseOptions { dockerCmd?: string; } @@ -65,6 +73,8 @@ export interface DockerOptions extends EsClusterExecOptions, BaseOptions { export interface ServerlessOptions extends EsClusterExecOptions, BaseOptions { /** Publish ES docker container on additional host IP */ host?: string; + /** Serverless project type */ + projectType?: ServerlessProjectType; /** Clean (or delete) all data created by the ES cluster after it is stopped */ clean?: boolean; /** Path to the directory where the ES cluster will store data */ @@ -536,7 +546,7 @@ export function getDockerFileMountPath(hostPath: string) { * Setup local volumes for Serverless ES */ export async function setupServerlessVolumes(log: ToolingLog, options: ServerlessOptions) { - const { basePath, clean, ssl, kibanaUrl, files, resources } = options; + const { basePath, clean, ssl, kibanaUrl, files, resources, projectType } = options; const objectStorePath = resolve(basePath, 'stateless'); log.info(chalk.bold(`Checking for local serverless ES object store at ${objectStorePath}`)); @@ -589,7 +599,20 @@ export async function setupServerlessVolumes(log: ToolingLog, options: Serverles }, {} as Record) : {}; - const serverlessResources = SERVERLESS_RESOURCES_PATHS.reduce((acc, path) => { + // Check if projectType is valid + if (projectType && !isServerlessProjectType(projectType)) { + throw new Error( + `Incorrect serverless project type: ${projectType}, use one of ${Array.from( + serverlessProjectTypes + ).join(', ')}` + ); + } + // Read roles for the specified projectType, 'es' if it is not defined + const rolesResourcePath = resolve(SERVERLESS_ROLES_ROOT_PATH, projectType ?? 'es', 'roles.yml'); + + const resourcesPaths = [...SERVERLESS_RESOURCES_PATHS, rolesResourcePath]; + + const serverlessResources = resourcesPaths.reduce((acc, path) => { const fileName = basename(path); let localFilePath = path; @@ -608,9 +631,9 @@ export async function setupServerlessVolumes(log: ToolingLog, options: Serverles throw new Error( `Unsupported ES serverless --resources value(s):\n ${Object.values( resourceFileOverrides - ).join(' \n')}\n\nValid resources: ${SERVERLESS_RESOURCES_PATHS.map((filePath) => - basename(filePath) - ).join(' | ')}` + ).join(' \n')}\n\nValid resources: ${resourcesPaths + .map((filePath) => basename(filePath)) + .join(' | ')}` ); } diff --git a/packages/kbn-es/tsconfig.json b/packages/kbn-es/tsconfig.json index b40ca33825562..fdeae934ce9ee 100644 --- a/packages/kbn-es/tsconfig.json +++ b/packages/kbn-es/tsconfig.json @@ -16,7 +16,7 @@ "@kbn/dev-utils", "@kbn/dev-proc-runner", "@kbn/ci-stats-reporter", - "@kbn/mock-idp-plugin", + "@kbn/mock-idp-utils", "@kbn/jest-serializers", "@kbn/repo-info" ] diff --git a/packages/kbn-eslint-plugin-i18n/helpers/get_intent_from_node.ts b/packages/kbn-eslint-plugin-i18n/helpers/get_intent_from_node.ts index d27f2407ce64c..e10c8a4cb6119 100644 --- a/packages/kbn-eslint-plugin-i18n/helpers/get_intent_from_node.ts +++ b/packages/kbn-eslint-plugin-i18n/helpers/get_intent_from_node.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ import { AST_NODE_TYPES, TSESTree } from '@typescript-eslint/typescript-estree'; -import { cleanString, lowerCaseFirstLetter, upperCaseFirstLetter } from './utils'; +import { geti18nIdentifierFromString, lowerCaseFirstLetter } from './utils'; const EXEMPTED_TAG_NAMES = ['EuiCode', 'EuiBetaBadge', 'FormattedMessage']; @@ -14,13 +14,7 @@ export function getIntentFromNode( value: string, parent: TSESTree.Node | undefined ): string | false { - const processedValue = lowerCaseFirstLetter( - cleanString(value) - .split(' ') - .filter((_, i) => i < 4) - .map(upperCaseFirstLetter) - .join('') - ); + const intent = geti18nIdentifierFromString(value); if ( parent && @@ -36,10 +30,10 @@ export function getIntentFromNode( } if (parentTagName.includes('Eui')) { - return `${processedValue}${parentTagName.replace('Eui', '')}Label`; + return `${intent}${parentTagName.replace('Eui', '')}Label`; } - return `${lowerCaseFirstLetter(parentTagName)}.${processedValue}Label`; + return `${lowerCaseFirstLetter(parentTagName)}.${intent}Label`; } if ( @@ -57,8 +51,8 @@ export function getIntentFromNode( return false; } - return `${lowerCaseFirstLetter(parentTagName)}.${processedValue}Label`; + return `${lowerCaseFirstLetter(parentTagName)}.${intent}Label`; } - return `${processedValue}Label`; + return `${intent}Label`; } diff --git a/packages/kbn-eslint-plugin-i18n/helpers/utils.test.ts b/packages/kbn-eslint-plugin-i18n/helpers/utils.test.ts index 9d36c7a7e1e9c..8b2979efbadde 100644 --- a/packages/kbn-eslint-plugin-i18n/helpers/utils.test.ts +++ b/packages/kbn-eslint-plugin-i18n/helpers/utils.test.ts @@ -6,7 +6,12 @@ * Side Public License, v 1. */ -import { cleanString, lowerCaseFirstLetter } from './utils'; +import { + getTranslatableValueFromString, + geti18nIdentifierFromString, + lowerCaseFirstLetter, + upperCaseFirstLetter, +} from './utils'; describe('Utils', () => { describe('lowerCaseFirstLetter', () => { @@ -22,34 +27,89 @@ describe('Utils', () => { }); }); - describe('cleanString', () => { + describe('upperCaseFirstLetter', () => { + it('should uppercase the first letter', () => { + expect(upperCaseFirstLetter('hello')).toBe('Hello'); + expect(upperCaseFirstLetter('greatSuccessYes')).toBe('GreatSuccessYes'); + expect(upperCaseFirstLetter('how is it going?')).toBe('How is it going?'); + }); + }); + + describe('getTranslatableValueFromString', () => { it('should remove all numbers', () => { - expect(cleanString('123')).toBe(''); + expect(getTranslatableValueFromString('123')).toBe(''); }); it('should remove all white spaces from beginning and end', () => { - expect(cleanString(' abc ')).toBe('abc'); - expect(cleanString(' This is a test ')).toBe('This is a test'); - expect( - cleanString(` - - - hello - - - - great!`) - ).toBe('hello great'); + expect(getTranslatableValueFromString(' abc ')).toBe('abc'); + expect(getTranslatableValueFromString(' This is a test ')).toBe('This is a test'); }); - it('should remove all non alphabet characters', () => { - expect(cleanString('abc123!@#')).toBe('abc'); - expect(cleanString('!@#$%^&*()_+{}|')).toBe(''); - expect(cleanString(' Hey, this is great! Success. ')).toBe('Hey this is great Success'); + it('should leave markdown alone', () => { + expect(getTranslatableValueFromString('```hello```')).toBe(''); }); - it('should leave markdown alone', () => { - expect(cleanString('```hello```')).toBe(''); + it('should remove all non alphabet characters unless they are incorporated in a sentence', () => { + expect(getTranslatableValueFromString('1')).toBe(''); + expect(getTranslatableValueFromString('12')).toBe(''); + expect(getTranslatableValueFromString('123')).toBe(''); + expect(getTranslatableValueFromString('?')).toBe(''); + expect(getTranslatableValueFromString('!')).toBe(''); + expect(getTranslatableValueFromString('!!')).toBe(''); + expect(getTranslatableValueFromString('!!!')).toBe(''); + expect(getTranslatableValueFromString('!!!!')).toBe(''); + expect(getTranslatableValueFromString('@')).toBe(''); + expect(getTranslatableValueFromString('!@#$%^&*()_+{}|')).toBe(''); + }); + + it('should leave special characters inside sentences alone', () => { + expect(getTranslatableValueFromString('Hey, you.')).toBe('Hey, you.'); + expect(getTranslatableValueFromString('Hey, "you".')).toBe('Hey, "you".'); + expect(getTranslatableValueFromString("Hey, 'you'.")).toBe("Hey, 'you'."); + expect(getTranslatableValueFromString(' Hey, you. ')).toBe('Hey, you.'); + expect( + getTranslatableValueFromString(` Hey, + + + you. `) + ).toBe(`Hey, + + + you.`); + expect(getTranslatableValueFromString(' Hey? ')).toBe('Hey?'); + expect(getTranslatableValueFromString('Hey?')).toBe('Hey?'); + expect(getTranslatableValueFromString('Hey, this is great! Success.')).toBe( + 'Hey, this is great! Success.' + ); + expect(getTranslatableValueFromString(' Hey, this is great! Success. ')).toBe( + 'Hey, this is great! Success.' + ); + }); + }); + + describe('geti18nIdentifierFromString', () => { + it('should create a camel cased string which strips all non alphanumeric characters', () => { + expect(geti18nIdentifierFromString('1')).toBe(''); + expect(geti18nIdentifierFromString('12')).toBe(''); + expect(geti18nIdentifierFromString('123')).toBe(''); + expect(geti18nIdentifierFromString('?')).toBe(''); + expect(geti18nIdentifierFromString('!')).toBe(''); + expect(geti18nIdentifierFromString('!!')).toBe(''); + expect(geti18nIdentifierFromString('!!!')).toBe(''); + expect(geti18nIdentifierFromString('!!!!')).toBe(''); + expect(geti18nIdentifierFromString('@')).toBe(''); + expect(geti18nIdentifierFromString('!@#$%^&*()_+{}|')).toBe(''); + expect(geti18nIdentifierFromString('!@#$%^&*()_+{}| 123 456 789')).toBe(''); + expect(geti18nIdentifierFromString('!@#$%^&*()_+{}|123456789')).toBe(''); + + expect(geti18nIdentifierFromString('Hey, you.')).toBe('heyYou'); + expect(geti18nIdentifierFromString('Hey, "you".')).toBe('heyYou'); + expect(geti18nIdentifierFromString("Hey, 'you'.")).toBe('heyYou'); + expect(geti18nIdentifierFromString(' Hey, you. ')).toBe('heyYou'); + expect(geti18nIdentifierFromString(' Hey? ')).toBe('hey'); + expect(geti18nIdentifierFromString('Hey?')).toBe('hey'); + expect(geti18nIdentifierFromString('Hey, this is great! Success.')).toBe('heyThisIsGreat'); + expect(geti18nIdentifierFromString('1Hey, this is great! Success.')).toBe('heyThisIsGreat'); }); }); }); diff --git a/packages/kbn-eslint-plugin-i18n/helpers/utils.ts b/packages/kbn-eslint-plugin-i18n/helpers/utils.ts index bfa0ceaf2aecc..28ec739047401 100644 --- a/packages/kbn-eslint-plugin-i18n/helpers/utils.ts +++ b/packages/kbn-eslint-plugin-i18n/helpers/utils.ts @@ -24,10 +24,36 @@ function isUpperCase(val: string) { return /^[A-Z]+$/.test(val); } -export function cleanString(str: string) { +export function geti18nIdentifierFromString(str: string) { return str + .trim() .replace(/```\w*```/g, '') + .replace(/[\'\"]+/g, '') .replace(/\s+/g, ' ') - .replace(/[^a-zA-Z\s]*/g, '') - .trim(); + .split(' ') + .filter((_, i) => i <= 3) + .map(upperCaseFirstLetter) + .map((word, index) => (index === 0 ? word.toLowerCase() : word)) + .join('') + .replace(/[^a-zA-Z\s]*/g, ''); +} + +export function getTranslatableValueFromString(str: string) { + const strTrimmed = str.trim(); + + if (strTrimmed.length === 1) { + return ''; + } + + // Markdown + if (strTrimmed.replace(/```\w*```/g, '').length === 0) { + return ''; + } + + // Special characters, numbers, and white spaces + if (strTrimmed.replace(/[!\@\#\$\%\^\&\*\(\)\_\+\{\}\|]|[0-9]|\s+/g, '').length === 0) { + return ''; + } + + return strTrimmed; } diff --git a/packages/kbn-eslint-plugin-i18n/jest.config.js b/packages/kbn-eslint-plugin-i18n/jest.config.js index 1ab5f78f024bf..eb06fa28e20ef 100644 --- a/packages/kbn-eslint-plugin-i18n/jest.config.js +++ b/packages/kbn-eslint-plugin-i18n/jest.config.js @@ -10,4 +10,7 @@ module.exports = { preset: '@kbn/test/jest_node', rootDir: '../..', roots: ['/packages/kbn-eslint-plugin-i18n'], + globals: { + structuredClone: {}, + }, }; diff --git a/packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_formatted_message.ts b/packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_formatted_message.ts index ea96cf313d1b4..008aa2e559679 100644 --- a/packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_formatted_message.ts +++ b/packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_formatted_message.ts @@ -12,7 +12,7 @@ import { getIntentFromNode } from '../helpers/get_intent_from_node'; import { getI18nIdentifierFromFilePath } from '../helpers/get_i18n_identifier_from_file_path'; import { getFunctionName } from '../helpers/get_function_name'; import { getI18nImportFixer } from '../helpers/get_i18n_import_fixer'; -import { cleanString, isTruthy } from '../helpers/utils'; +import { getTranslatableValueFromString, isTruthy } from '../helpers/utils'; export const RULE_WARNING_MESSAGE = 'Strings should be translated with . Use the autofix suggestion or add your own.'; @@ -26,9 +26,9 @@ export const StringsShouldBeTranslatedWithFormattedMessage: Rule.RuleModule = { return { JSXText: (node: TSESTree.JSXText) => { - const value = cleanString(node.value); + const value = getTranslatableValueFromString(node.value); - // If the JSXText element is empty we don't need to do anything + // If the JSXText element is empty or untranslatable we don't need to do anything if (!value) return; // Get the whitespaces before the string so we can add them to the autofix suggestion @@ -86,12 +86,12 @@ export const StringsShouldBeTranslatedWithFormattedMessage: Rule.RuleModule = { 'value' in node.value.expression && typeof node.value.expression.value === 'string' ) { - val = cleanString(node.value.expression.value); + val = getTranslatableValueFromString(node.value.expression.value); } // label="foo" if (node.value && 'value' in node.value && typeof node.value.value === 'string') { - val = cleanString(node.value.value); + val = getTranslatableValueFromString(node.value.value); } if (!val) return; diff --git a/packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_i18n.ts b/packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_i18n.ts index ec1630de115e6..ec8bdb13815fe 100644 --- a/packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_i18n.ts +++ b/packages/kbn-eslint-plugin-i18n/rules/strings_should_be_translated_with_i18n.ts @@ -12,7 +12,7 @@ import { getIntentFromNode } from '../helpers/get_intent_from_node'; import { getI18nIdentifierFromFilePath } from '../helpers/get_i18n_identifier_from_file_path'; import { getFunctionName } from '../helpers/get_function_name'; import { getI18nImportFixer } from '../helpers/get_i18n_import_fixer'; -import { cleanString, isTruthy } from '../helpers/utils'; +import { getTranslatableValueFromString, isTruthy } from '../helpers/utils'; export const RULE_WARNING_MESSAGE = 'Strings should be translated with i18n. Use the autofix suggestion or add your own.'; @@ -27,9 +27,9 @@ export const StringsShouldBeTranslatedWithI18n: Rule.RuleModule = { return { JSXText: (node: TSESTree.JSXText) => { - const value = cleanString(node.value); + const value = getTranslatableValueFromString(node.value); - // If the JSXText element is empty we don't need to do anything + // If the JSXText element is empty or untranslatable we don't need to do anything if (!value) return; // Get the whitespaces before the string so we can add them to the autofix suggestion @@ -84,12 +84,12 @@ export const StringsShouldBeTranslatedWithI18n: Rule.RuleModule = { 'value' in node.value.expression && typeof node.value.expression.value === 'string' ) { - val = cleanString(node.value.expression.value); + val = getTranslatableValueFromString(node.value.expression.value); } // label="foo" if (node.value && 'value' in node.value && typeof node.value.value === 'string') { - val = cleanString(node.value.value); + val = getTranslatableValueFromString(node.value.value); } if (!val) return; diff --git a/packages/kbn-expandable-flyout/README.md b/packages/kbn-expandable-flyout/README.md index d5428bd7e4fcb..0f07b0679c94a 100644 --- a/packages/kbn-expandable-flyout/README.md +++ b/packages/kbn-expandable-flyout/README.md @@ -27,7 +27,7 @@ The expandable-flyout is making some strict UI design decisions: The ExpandableFlyout [React component](https://github.com/elastic/kibana/tree/main/packages/kbn-expandable-flyout/src/index.tsx) renders the UI, leveraging an [EuiFlyout](https://eui.elastic.co/#/layout/flyout). -The ExpandableFlyout [React context](https://github.com/elastic/kibana/blob/main/packages/kbn-expandable-flyout/src/context.tsx) manages the internal state of the expandable flyout, and exposes the following api: +The ExpandableFlyout [hooks](https://github.com/elastic/kibana/blob/main/packages/kbn-expandable-flyout/src/context.tsx) expose the state and the following api: - **openFlyout**: open the flyout with a set of panels - **openRightPanel**: open a right panel - **openLeftPanel**: open a left panel @@ -38,7 +38,9 @@ The ExpandableFlyout [React context](https://github.com/elastic/kibana/blob/main - **previousPreviewPanel**: navigate to the previous preview panel - **closeFlyout**: close the flyout -To retrieve the flyout's layout (left, right and preview panels), you can use the **panels** from the same [React context](https://github.com/elastic/kibana/blob/main/packages/kbn-expandable-flyout/src/context.tsx). +To retrieve the flyout's layout (left, right and preview panels), you can use the **useExpandableFlyoutState** from the same [React context](https://github.com/elastic/kibana/blob/main/packages/kbn-expandable-flyout/src/context.tsx). + +To control (or mutate) flyout's layout, you can use the **useExpandableFlyoutApi** from the same [React context](https://github.com/elastic/kibana/blob/main/packages/kbn-expandable-flyout/src/context.tsx). ## Usage diff --git a/packages/kbn-expandable-flyout/index.ts b/packages/kbn-expandable-flyout/index.ts index 6de82033af04c..90849391fe4a6 100644 --- a/packages/kbn-expandable-flyout/index.ts +++ b/packages/kbn-expandable-flyout/index.ts @@ -8,11 +8,17 @@ export { ExpandableFlyout } from './src'; -export { useExpandableFlyoutContext, type ExpandableFlyoutContext } from './src/context'; +export { + type ExpandableFlyoutContext, + useExpandableFlyoutState, + useExpandableFlyoutApi, +} from './src/context'; + +export { type State as ExpandableFlyoutState } from './src/state'; export { ExpandableFlyoutProvider } from './src/provider'; export type { ExpandableFlyoutProps } from './src'; -export type { FlyoutPanelProps, PanelPath } from './src/types'; +export type { FlyoutPanelProps, PanelPath, ExpandableFlyoutApi } from './src/types'; export { EXPANDABLE_FLYOUT_URL_KEY } from './src/constants'; diff --git a/packages/kbn-expandable-flyout/src/actions.ts b/packages/kbn-expandable-flyout/src/actions.ts index aa8e813f8a845..ce3dd7e208b4c 100644 --- a/packages/kbn-expandable-flyout/src/actions.ts +++ b/packages/kbn-expandable-flyout/src/actions.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import { createAction } from '@reduxjs/toolkit'; import { FlyoutPanelProps } from './types'; export enum ActionType { @@ -20,39 +21,19 @@ export enum ActionType { closeFlyout = 'close_flyout', } -export type Action = - | { - type: ActionType.openFlyout; - payload: { - right?: FlyoutPanelProps; - left?: FlyoutPanelProps; - preview?: FlyoutPanelProps; - }; - } - | { - type: ActionType.openRightPanel; - payload: FlyoutPanelProps; - } - | { - type: ActionType.openLeftPanel; - payload: FlyoutPanelProps; - } - | { - type: ActionType.openPreviewPanel; - payload: FlyoutPanelProps; - } - | { - type: ActionType.closeRightPanel; - } - | { - type: ActionType.closeLeftPanel; - } - | { - type: ActionType.closePreviewPanel; - } - | { - type: ActionType.previousPreviewPanel; - } - | { - type: ActionType.closeFlyout; - }; +export const openPanelsAction = createAction<{ + right?: FlyoutPanelProps; + left?: FlyoutPanelProps; + preview?: FlyoutPanelProps; +}>(ActionType.openFlyout); + +export const openRightPanelAction = createAction(ActionType.openRightPanel); +export const openLeftPanelAction = createAction(ActionType.openLeftPanel); +export const openPreviewPanelAction = createAction(ActionType.openPreviewPanel); + +export const closePanelsAction = createAction(ActionType.closeFlyout); +export const closeRightPanelAction = createAction(ActionType.closeRightPanel); +export const closeLeftPanelAction = createAction(ActionType.closeLeftPanel); +export const closePreviewPanelAction = createAction(ActionType.closePreviewPanel); + +export const previousPreviewPanelAction = createAction(ActionType.previousPreviewPanel); diff --git a/packages/kbn-expandable-flyout/src/components/preview_section.test.tsx b/packages/kbn-expandable-flyout/src/components/preview_section.test.tsx index 69bdd7050e64a..d3bd510266084 100644 --- a/packages/kbn-expandable-flyout/src/components/preview_section.test.tsx +++ b/packages/kbn-expandable-flyout/src/components/preview_section.test.tsx @@ -14,7 +14,8 @@ import { PREVIEW_SECTION_CLOSE_BUTTON_TEST_ID, PREVIEW_SECTION_TEST_ID, } from './test_ids'; -import { ExpandableFlyoutContext, ExpandableFlyoutContextValue } from '../context'; +import { ExpandableFlyoutContextValue } from '../context'; +import { TestProvider } from '../test/provider'; describe('PreviewSection', () => { const context = { @@ -36,9 +37,9 @@ describe('PreviewSection', () => { const showBackButton = false; const { getByTestId } = render( - + - + ); expect(getByTestId(PREVIEW_SECTION_CLOSE_BUTTON_TEST_ID)).toBeInTheDocument(); @@ -48,9 +49,9 @@ describe('PreviewSection', () => { const showBackButton = true; const { getByTestId } = render( - + - + ); expect(getByTestId(PREVIEW_SECTION_BACK_BUTTON_TEST_ID)).toBeInTheDocument(); @@ -66,14 +67,14 @@ describe('PreviewSection', () => { }; const { getByTestId, getByText } = render( - + - + ); expect(getByTestId(`${PREVIEW_SECTION_TEST_ID}BannerPanel`)).toHaveClass( diff --git a/packages/kbn-expandable-flyout/src/components/preview_section.tsx b/packages/kbn-expandable-flyout/src/components/preview_section.tsx index ae96bdb7ce187..e572e477f725d 100644 --- a/packages/kbn-expandable-flyout/src/components/preview_section.tsx +++ b/packages/kbn-expandable-flyout/src/components/preview_section.tsx @@ -24,7 +24,7 @@ import { PREVIEW_SECTION_HEADER_TEST_ID, PREVIEW_SECTION_TEST_ID, } from './test_ids'; -import { useExpandableFlyoutContext } from '../..'; +import { useExpandableFlyoutApi } from '../..'; import { BACK_BUTTON, CLOSE_BUTTON } from './translations'; export interface PreviewBanner { @@ -89,7 +89,7 @@ export const PreviewSection: React.FC = ({ banner, }: PreviewSectionProps) => { const { euiTheme } = useEuiTheme(); - const { closePreviewPanel, previousPreviewPanel } = useExpandableFlyoutContext(); + const { closePreviewPanel, previousPreviewPanel } = useExpandableFlyoutApi(); const left = leftPosition + 4; diff --git a/packages/kbn-expandable-flyout/src/context.tsx b/packages/kbn-expandable-flyout/src/context.tsx index 6deb5d2bede30..d2155cbd52f20 100644 --- a/packages/kbn-expandable-flyout/src/context.tsx +++ b/packages/kbn-expandable-flyout/src/context.tsx @@ -7,18 +7,23 @@ */ import { createContext, useContext } from 'react'; -import { type ExpandableFlyoutContextValue } from './types'; +import { useFlyoutMemoryState } from './context/memory_state_provider'; +import { useFlyoutUrlState } from './context/url_state_provider'; +import { type ExpandableFlyoutApi } from './types'; -export type { ExpandableFlyoutContextValue }; +export type { ExpandableFlyoutApi as ExpandableFlyoutContextValue }; + +type ExpandableFlyoutContextValue = 'memory' | 'url'; export const ExpandableFlyoutContext = createContext( undefined ); /** - * Retrieve context's properties + * Retrieve Flyout's api and state + * @deprecated */ -export const useExpandableFlyoutContext = (): ExpandableFlyoutContextValue => { +export const useExpandableFlyoutContext = (): ExpandableFlyoutApi => { const contextValue = useContext(ExpandableFlyoutContext); if (!contextValue) { @@ -27,5 +32,26 @@ export const useExpandableFlyoutContext = (): ExpandableFlyoutContextValue => { ); } - return contextValue; + const memoryState = useFlyoutMemoryState(); + const urlState = useFlyoutUrlState(); + + return contextValue === 'memory' ? memoryState : urlState; +}; + +/** + * This hook allows you to interact with the flyout, open panels and previews etc. + */ +export const useExpandableFlyoutApi = () => { + const { panels, ...api } = useExpandableFlyoutContext(); + + return api; +}; + +/** + * This hook allows you to access the flyout state, read open panels and previews. + */ +export const useExpandableFlyoutState = () => { + const expandableFlyoutApiAndState = useExpandableFlyoutContext(); + + return expandableFlyoutApiAndState.panels; }; diff --git a/packages/kbn-expandable-flyout/src/context/memory_state_provider.tsx b/packages/kbn-expandable-flyout/src/context/memory_state_provider.tsx index f70ae9dbbe8de..a4981c5a2122b 100644 --- a/packages/kbn-expandable-flyout/src/context/memory_state_provider.tsx +++ b/packages/kbn-expandable-flyout/src/context/memory_state_provider.tsx @@ -6,19 +6,48 @@ * Side Public License, v 1. */ -import React, { FC, PropsWithChildren, useCallback, useMemo, useReducer } from 'react'; -import { ActionType } from '../actions'; +import React, { createContext, FC, useCallback, useMemo } from 'react'; +import { + createDispatchHook, + createSelectorHook, + Provider as ReduxProvider, + ReactReduxContextValue, +} from 'react-redux'; +import { configureStore } from '@reduxjs/toolkit'; + import { reducer } from '../reducer'; -import type { ExpandableFlyoutContextValue, FlyoutPanelProps } from '../types'; -import { initialState } from '../reducer'; -import { ExpandableFlyoutContext } from '../context'; +import { initialState, State } from '../state'; +import type { ExpandableFlyoutApi, FlyoutPanelProps } from '../types'; +import { + closeLeftPanelAction, + closePanelsAction, + closePreviewPanelAction, + closeRightPanelAction, + openLeftPanelAction, + openPanelsAction, + openPreviewPanelAction, + openRightPanelAction, + previousPreviewPanelAction, +} from '../actions'; -/** - * In-memory state provider for the expandable flyout, for cases when we don't want changes to be persisted - * in the url. - */ -export const MemoryStateProvider: FC> = ({ children }) => { - const [state, dispatch] = useReducer(reducer, initialState); +export const store = configureStore({ + reducer, + devTools: process.env.NODE_ENV !== 'production', + preloadedState: {}, + enhancers: [], +}); + +export const Context = createContext>({ + store, + storeState: initialState, +}); + +const useDispatch = createDispatchHook(Context); +const useSelector = createSelectorHook(Context); + +export const useFlyoutMemoryState = (): ExpandableFlyoutApi => { + const state = useSelector((s) => s); + const dispatch = useDispatch(); const openPanels = useCallback( ({ @@ -29,41 +58,41 @@ export const MemoryStateProvider: FC> = ({ children }) => right?: FlyoutPanelProps; left?: FlyoutPanelProps; preview?: FlyoutPanelProps; - }) => dispatch({ type: ActionType.openFlyout, payload: { left, right, preview } }), + }) => dispatch(openPanelsAction({ right, left, preview })), [dispatch] ); const openRightPanel = useCallback( - (panel: FlyoutPanelProps) => dispatch({ type: ActionType.openRightPanel, payload: panel }), - [] + (panel: FlyoutPanelProps) => dispatch(openRightPanelAction(panel)), + [dispatch] ); const openLeftPanel = useCallback( - (panel: FlyoutPanelProps) => dispatch({ type: ActionType.openLeftPanel, payload: panel }), - [] + (panel: FlyoutPanelProps) => dispatch(openLeftPanelAction(panel)), + [dispatch] ); const openPreviewPanel = useCallback( - (panel: FlyoutPanelProps) => dispatch({ type: ActionType.openPreviewPanel, payload: panel }), - [] + (panel: FlyoutPanelProps) => dispatch(openPreviewPanelAction(panel)), + [dispatch] ); - const closeRightPanel = useCallback(() => dispatch({ type: ActionType.closeRightPanel }), []); + const closeRightPanel = useCallback(() => dispatch(closeRightPanelAction()), [dispatch]); - const closeLeftPanel = useCallback(() => dispatch({ type: ActionType.closeLeftPanel }), []); + const closeLeftPanel = useCallback(() => dispatch(closeLeftPanelAction()), [dispatch]); - const closePreviewPanel = useCallback(() => dispatch({ type: ActionType.closePreviewPanel }), []); + const closePreviewPanel = useCallback(() => dispatch(closePreviewPanelAction()), [dispatch]); const previousPreviewPanel = useCallback( - () => dispatch({ type: ActionType.previousPreviewPanel }), - [] + () => dispatch(previousPreviewPanelAction()), + [dispatch] ); const closePanels = useCallback(() => { - dispatch({ type: ActionType.closeFlyout }); - }, []); + dispatch(closePanelsAction()); + }, [dispatch]); - const contextValue: ExpandableFlyoutContextValue = useMemo( + const api: ExpandableFlyoutApi = useMemo( () => ({ panels: state, openFlyout: openPanels, @@ -90,9 +119,17 @@ export const MemoryStateProvider: FC> = ({ children }) => ] ); + return api; +}; + +/** + * In-memory state provider for the expandable flyout, for cases when we don't want changes to be persisted + * in the url. + */ +export const MemoryStateProvider: FC = ({ children }) => { return ( - + {children} - + ); }; diff --git a/packages/kbn-expandable-flyout/src/context/url_state_provider.tsx b/packages/kbn-expandable-flyout/src/context/url_state_provider.tsx index e6f81e23d2fb1..c26525cf0e594 100644 --- a/packages/kbn-expandable-flyout/src/context/url_state_provider.tsx +++ b/packages/kbn-expandable-flyout/src/context/url_state_provider.tsx @@ -6,18 +6,14 @@ * Side Public License, v 1. */ -import React, { FC, PropsWithChildren, useCallback, useMemo } from 'react'; -import { FlyoutPanelProps, ExpandableFlyoutContextValue } from '../types'; +import { useCallback, useMemo } from 'react'; +import { FlyoutPanelProps, ExpandableFlyoutApi } from '../types'; import { useRightPanel } from '../hooks/use_right_panel'; import { useLeftPanel } from '../hooks/use_left_panel'; import { usePreviewPanel } from '../hooks/use_preview_panel'; -import { ExpandableFlyoutContext } from '../context'; -import { State } from '../reducer'; +import { State } from '../state'; -/** - * Private component that manages flyout state with url query params - */ -export const UrlStateProvider: FC> = ({ children }) => { +export const useFlyoutUrlState = (): ExpandableFlyoutApi => { const { setRightPanelState, rightPanelState } = useRightPanel(); const { setLeftPanelState, leftPanelState } = useLeftPanel(); const { previewState, setPreviewState } = usePreviewPanel(); @@ -82,7 +78,7 @@ export const UrlStateProvider: FC> = ({ children }) => { setPreviewState([]); }, [setRightPanelState, setLeftPanelState, setPreviewState]); - const contextValue: ExpandableFlyoutContextValue = useMemo( + const contextValue: ExpandableFlyoutApi = useMemo( () => ({ panels, openFlyout: openPanels, @@ -109,9 +105,5 @@ export const UrlStateProvider: FC> = ({ children }) => { ] ); - return ( - - {children} - - ); + return contextValue; }; diff --git a/packages/kbn-expandable-flyout/src/index.stories.tsx b/packages/kbn-expandable-flyout/src/index.stories.tsx index 615621bf9a571..8c6bacb20adf6 100644 --- a/packages/kbn-expandable-flyout/src/index.stories.tsx +++ b/packages/kbn-expandable-flyout/src/index.stories.tsx @@ -19,7 +19,8 @@ import { EuiTitle, } from '@elastic/eui'; import { ExpandableFlyout } from '.'; -import { ExpandableFlyoutContext, ExpandableFlyoutContextValue } from './context'; +import { ExpandableFlyoutContextValue } from './context'; +import { TestProvider } from './test/provider'; export default { component: ExpandableFlyout, @@ -108,13 +109,12 @@ export const Right: Story = () => { left: {}, preview: [], }, - closeFlyout: () => window.alert('closeFlyout api'), } as unknown as ExpandableFlyoutContextValue; return ( - + - + ); }; @@ -129,13 +129,12 @@ export const Left: Story = () => { }, preview: [], }, - closeFlyout: () => window.alert('closeFlyout api'), } as unknown as ExpandableFlyoutContextValue; return ( - + - + ); }; @@ -154,14 +153,12 @@ export const Preview: Story = () => { }, ], }, - closePreviewPanel: () => window.alert('closePreviewPanel api'), - closeFlyout: () => window.alert('closeFlyout api'), } as unknown as ExpandableFlyoutContextValue; return ( - + - + ); }; @@ -183,14 +180,11 @@ export const MultiplePreviews: Story = () => { }, ], }, - closePreviewPanel: () => window.alert('closePreviewPanel api'), - previousPreviewPanel: () => window.alert('previousPreviewPanel api'), - closeFlyout: () => window.alert('closeFlyout api'), } as unknown as ExpandableFlyoutContextValue; return ( - + - + ); }; diff --git a/packages/kbn-expandable-flyout/src/index.test.tsx b/packages/kbn-expandable-flyout/src/index.test.tsx index 46ae2dce508f2..a2265adfa5eea 100644 --- a/packages/kbn-expandable-flyout/src/index.test.tsx +++ b/packages/kbn-expandable-flyout/src/index.test.tsx @@ -8,36 +8,37 @@ import React from 'react'; import { render } from '@testing-library/react'; -import { ExpandableFlyoutContextValue, Panel } from './types'; + +import { Panel } from './types'; import { ExpandableFlyout } from '.'; import { LEFT_SECTION_TEST_ID, PREVIEW_SECTION_TEST_ID, RIGHT_SECTION_TEST_ID, } from './components/test_ids'; -import { ExpandableFlyoutContext } from './context'; +import { type State } from './state'; +import { TestProvider } from './test/provider'; +jest.mock('./context/url_state_provider'); -describe('ExpandableFlyout', () => { - const registeredPanels: Panel[] = [ - { - key: 'key', - component: () =>
{'component'}
, - }, - ]; +const registeredPanels: Panel[] = [ + { + key: 'key', + component: () =>
{'component'}
, + }, +]; +describe('ExpandableFlyout', () => { it(`shouldn't render flyout if no panels`, () => { const context = { - panels: { - right: undefined, - left: undefined, - preview: [], - }, - } as unknown as ExpandableFlyoutContextValue; + right: undefined, + left: undefined, + preview: [], + } as unknown as State; const result = render( - + - + ); expect(result.asFragment()).toMatchInlineSnapshot(``); @@ -45,19 +46,17 @@ describe('ExpandableFlyout', () => { it('should render right section', () => { const context = { - panels: { - right: { - id: 'key', - }, - left: {}, - preview: [], + right: { + id: 'key', }, - } as unknown as ExpandableFlyoutContextValue; + left: {}, + preview: [], + } as unknown as State; const { getByTestId } = render( - + - + ); expect(getByTestId(RIGHT_SECTION_TEST_ID)).toBeInTheDocument(); @@ -65,41 +64,37 @@ describe('ExpandableFlyout', () => { it('should render left section', () => { const context = { - panels: { - right: {}, - left: { - id: 'key', - }, - preview: [], + right: {}, + left: { + id: 'key', }, - } as unknown as ExpandableFlyoutContextValue; + preview: [], + } as unknown as State; const { getByTestId } = render( - + - + ); expect(getByTestId(LEFT_SECTION_TEST_ID)).toBeInTheDocument(); }); it('should render preview section', () => { - const context: ExpandableFlyoutContextValue = { - panels: { - right: {}, - left: {}, - preview: [ - { - id: 'key', - }, - ], - }, - } as unknown as ExpandableFlyoutContextValue; + const context = { + right: {}, + left: {}, + preview: [ + { + id: 'key', + }, + ], + } as State; const { getByTestId } = render( - + - + ); expect(getByTestId(PREVIEW_SECTION_TEST_ID)).toBeInTheDocument(); diff --git a/packages/kbn-expandable-flyout/src/provider.tsx b/packages/kbn-expandable-flyout/src/provider.tsx index a5acc25c13b7d..63c8aec6b9bf4 100644 --- a/packages/kbn-expandable-flyout/src/provider.tsx +++ b/packages/kbn-expandable-flyout/src/provider.tsx @@ -7,7 +7,7 @@ */ import React, { FC, PropsWithChildren } from 'react'; -import { UrlStateProvider } from './context/url_state_provider'; +import { ExpandableFlyoutContext } from './context'; import { MemoryStateProvider } from './context/memory_state_provider'; interface ExpandableFlyoutProviderProps { @@ -22,16 +22,16 @@ interface ExpandableFlyoutProviderProps { * Wrap your plugin with this context for the ExpandableFlyout React component. * Storage property allows you to specify how the flyout state works internally. * With "url", it will be persisted into url and thus allow for deep linking & will survive webpage reloads. - * "memory" is based on useReducer hook. The state is saved internally to the package. which means it will not be + * "memory" is based on an isolated redux context. The state is saved internally to the package, which means it will not be * persisted when sharing url or reloading browser pages. */ export const ExpandableFlyoutProvider: FC> = ({ children, storage = 'url', }) => { - if (storage === 'memory') { - return {children}; - } - - return {children}; + return ( + + {children} + + ); }; diff --git a/packages/kbn-expandable-flyout/src/reducer.test.ts b/packages/kbn-expandable-flyout/src/reducer.test.ts index 475566a059a80..92a9d2d8309e5 100644 --- a/packages/kbn-expandable-flyout/src/reducer.test.ts +++ b/packages/kbn-expandable-flyout/src/reducer.test.ts @@ -7,8 +7,19 @@ */ import { FlyoutPanelProps } from './types'; -import { initialState, reducer, State } from './reducer'; -import { Action, ActionType } from './actions'; +import { reducer } from './reducer'; +import { initialState, State } from './state'; +import { + closeLeftPanelAction, + closePanelsAction, + closePreviewPanelAction, + closeRightPanelAction, + openLeftPanelAction, + openPanelsAction, + openPreviewPanelAction, + openRightPanelAction, + previousPreviewPanelAction, +} from './actions'; const rightPanel1: FlyoutPanelProps = { id: 'right1', @@ -39,14 +50,11 @@ describe('reducer', () => { describe('should handle openFlyout action', () => { it('should add panels to empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.openFlyout, - payload: { - right: rightPanel1, - left: leftPanel1, - preview: previewPanel1, - }, - }; + const action = openPanelsAction({ + right: rightPanel1, + left: leftPanel1, + preview: previewPanel1, + }); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -62,14 +70,11 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1, { id: 'preview' }], }; - const action: Action = { - type: ActionType.openFlyout, - payload: { - right: rightPanel2, - left: leftPanel2, - preview: previewPanel2, - }, - }; + const action = openPanelsAction({ + right: rightPanel2, + left: leftPanel2, + preview: previewPanel2, + }); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -85,12 +90,9 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1], }; - const action: Action = { - type: ActionType.openFlyout, - payload: { - right: rightPanel2, - }, - }; + const action = openPanelsAction({ + right: rightPanel2, + }); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -104,10 +106,7 @@ describe('reducer', () => { describe('should handle openRightPanel action', () => { it('should add right panel to empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.openRightPanel, - payload: rightPanel1, - }; + const action = openRightPanelAction(rightPanel1); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -123,10 +122,7 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1], }; - const action: Action = { - type: ActionType.openRightPanel, - payload: rightPanel2, - }; + const action = openRightPanelAction(rightPanel2); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -140,10 +136,7 @@ describe('reducer', () => { describe('should handle openLeftPanel action', () => { it('should add left panel to empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.openLeftPanel, - payload: leftPanel1, - }; + const action = openLeftPanelAction(leftPanel1); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -159,10 +152,7 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1], }; - const action: Action = { - type: ActionType.openLeftPanel, - payload: leftPanel2, - }; + const action = openLeftPanelAction(leftPanel2); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -176,10 +166,7 @@ describe('reducer', () => { describe('should handle openPreviewPanel action', () => { it('should add preview panel to empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.openPreviewPanel, - payload: previewPanel1, - }; + const action = openPreviewPanelAction(previewPanel1); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -195,10 +182,7 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1], }; - const action: Action = { - type: ActionType.openPreviewPanel, - payload: previewPanel2, - }; + const action = openPreviewPanelAction(previewPanel2); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -212,9 +196,7 @@ describe('reducer', () => { describe('should handle closeRightPanel action', () => { it('should return empty state when removing right panel from empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.closeRightPanel, - }; + const action = closeRightPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual(state); @@ -226,9 +208,7 @@ describe('reducer', () => { right: undefined, preview: [previewPanel1], }; - const action: Action = { - type: ActionType.closeRightPanel, - }; + const action = closeRightPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual(state); @@ -240,9 +220,8 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1], }; - const action: Action = { - type: ActionType.closeRightPanel, - }; + const action = closeRightPanelAction(); + const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -256,9 +235,7 @@ describe('reducer', () => { describe('should handle closeLeftPanel action', () => { it('should return empty state when removing left panel on empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.closeLeftPanel, - }; + const action = closeLeftPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual(state); @@ -270,9 +247,7 @@ describe('reducer', () => { right: rightPanel1, preview: [], }; - const action: Action = { - type: ActionType.closeLeftPanel, - }; + const action = closeLeftPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual(state); @@ -284,9 +259,7 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1], }; - const action: Action = { - type: ActionType.closeLeftPanel, - }; + const action = closeLeftPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -300,9 +273,7 @@ describe('reducer', () => { describe('should handle closePreviewPanel action', () => { it('should return empty state when removing preview panel on empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.closePreviewPanel, - }; + const action = closePreviewPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual(state); @@ -314,9 +285,7 @@ describe('reducer', () => { right: rightPanel1, preview: [], }; - const action: Action = { - type: ActionType.closePreviewPanel, - }; + const action = closePreviewPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual(state); @@ -328,9 +297,7 @@ describe('reducer', () => { right: leftPanel1, preview: [previewPanel1, previewPanel2], }; - const action: Action = { - type: ActionType.closePreviewPanel, - }; + const action = closePreviewPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -344,9 +311,7 @@ describe('reducer', () => { describe('should handle previousPreviewPanel action', () => { it('should return empty state when previous preview panel on an empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.previousPreviewPanel, - }; + const action = previousPreviewPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual(state); @@ -358,9 +323,7 @@ describe('reducer', () => { right: rightPanel1, preview: [], }; - const action: Action = { - type: ActionType.previousPreviewPanel, - }; + const action = previousPreviewPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual(state); @@ -372,9 +335,7 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1, previewPanel2], }; - const action: Action = { - type: ActionType.previousPreviewPanel, - }; + const action = previousPreviewPanelAction(); const newState: State = reducer(state, action); expect(newState).toEqual({ @@ -388,9 +349,7 @@ describe('reducer', () => { describe('should handle closeFlyout action', () => { it('should return empty state when closing flyout on an empty state', () => { const state: State = initialState; - const action: Action = { - type: ActionType.closeFlyout, - }; + const action = closePanelsAction(); const newState: State = reducer(state, action); expect(newState).toEqual(initialState); @@ -402,9 +361,7 @@ describe('reducer', () => { right: rightPanel1, preview: [previewPanel1], }; - const action: Action = { - type: ActionType.closeFlyout, - }; + const action = closePanelsAction(); const newState: State = reducer(state, action); expect(newState).toEqual({ diff --git a/packages/kbn-expandable-flyout/src/reducer.ts b/packages/kbn-expandable-flyout/src/reducer.ts index 5b4c0675548aa..fe3d40ce9a797 100644 --- a/packages/kbn-expandable-flyout/src/reducer.ts +++ b/packages/kbn-expandable-flyout/src/reducer.ts @@ -6,107 +6,58 @@ * Side Public License, v 1. */ -import { FlyoutPanelProps } from './types'; -import { Action, ActionType } from './actions'; - -export interface State { - /** - * Panel to render in the left section - */ - left: FlyoutPanelProps | undefined; - /** - * Panel to render in the right section - */ - right: FlyoutPanelProps | undefined; - /** - * Panels to render in the preview section - */ - preview: FlyoutPanelProps[]; -} - -export const initialState: State = { - left: undefined, - right: undefined, - preview: [], -}; - -export function reducer(state: State, action: Action) { - switch (action.type) { - /** - * Open the flyout by replacing the entire state with new panels. - */ - case ActionType.openFlyout: { - const { left, right, preview } = action.payload; - return { - left, - right, - preview: preview ? [preview] : [], - }; - } - - /** - * Opens a right section by replacing the previous right panel with the new one. - */ - case ActionType.openRightPanel: { - return { ...state, right: action.payload }; - } - - /** - * Opens a left section by replacing the previous left panel with the new one. - */ - case ActionType.openLeftPanel: { - return { ...state, left: action.payload }; - } - - /** - * Opens a preview section by adding to the array of preview panels. - */ - case ActionType.openPreviewPanel: { - return { ...state, preview: [...state.preview, action.payload] }; - } - - /** - * Closes the right section by removing the right panel. - */ - case ActionType.closeRightPanel: { - return { ...state, right: undefined }; - } - - /** - * Close the left section by removing the left panel. - */ - case ActionType.closeLeftPanel: { - return { ...state, left: undefined }; - } - - /** - * Closes the preview section by removing all the preview panels. - */ - case ActionType.closePreviewPanel: { - return { ...state, preview: [] }; - } - - /** - * Navigates to the previous preview panel by removing the last entry in the array of preview panels. - */ - case ActionType.previousPreviewPanel: { - const p: FlyoutPanelProps[] = [...state.preview]; - p.pop(); - return { ...state, preview: p }; - } - - /** - * Close the flyout by removing all the panels. - */ - case ActionType.closeFlyout: { - return { - left: undefined, - right: undefined, - preview: [], - }; - } - - default: - return state; - } -} +import { createReducer } from '@reduxjs/toolkit'; +import { + openPanelsAction, + openLeftPanelAction, + openRightPanelAction, + closePanelsAction, + closeLeftPanelAction, + closePreviewPanelAction, + closeRightPanelAction, + previousPreviewPanelAction, + openPreviewPanelAction, +} from './actions'; +import { initialState } from './state'; + +export const reducer = createReducer(initialState, (builder) => { + builder.addCase(openPanelsAction, (state, { payload: { preview, left, right } }) => { + state.preview = preview ? [preview] : []; + state.right = right; + state.left = left; + }); + + builder.addCase(openLeftPanelAction, (state, { payload }) => { + state.left = payload; + }); + + builder.addCase(openRightPanelAction, (state, { payload }) => { + state.right = payload; + }); + + builder.addCase(openPreviewPanelAction, (state, { payload }) => { + state.preview.push(payload); + }); + + builder.addCase(previousPreviewPanelAction, (state) => { + state.preview.pop(); + }); + + builder.addCase(closePanelsAction, (state) => { + state.preview = []; + state.right = undefined; + state.left = undefined; + }); + + builder.addCase(closeLeftPanelAction, (state) => { + state.left = undefined; + }); + + builder.addCase(closeRightPanelAction, (state) => { + state.right = undefined; + }); + + builder.addCase(closePreviewPanelAction, (state) => { + state.preview = []; + }); +}); diff --git a/packages/kbn-expandable-flyout/src/state.ts b/packages/kbn-expandable-flyout/src/state.ts new file mode 100644 index 0000000000000..75f8269a82962 --- /dev/null +++ b/packages/kbn-expandable-flyout/src/state.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 { FlyoutPanelProps } from './types'; + +export interface State { + /** + * Panel to render in the left section + */ + left: FlyoutPanelProps | undefined; + /** + * Panel to render in the right section + */ + right: FlyoutPanelProps | undefined; + /** + * Panels to render in the preview section + */ + preview: FlyoutPanelProps[]; +} + +export const initialState: State = { + left: undefined, + right: undefined, + preview: [], +}; diff --git a/packages/kbn-expandable-flyout/src/test/provider.tsx b/packages/kbn-expandable-flyout/src/test/provider.tsx new file mode 100644 index 0000000000000..eab1d94fc0bbd --- /dev/null +++ b/packages/kbn-expandable-flyout/src/test/provider.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 { Provider as ReduxProvider } from 'react-redux'; +import { configureStore } from '@reduxjs/toolkit'; +import React, { FC, PropsWithChildren } from 'react'; +import { reducer } from '../reducer'; +import { Context } from '../context/memory_state_provider'; +import { ExpandableFlyoutContext } from '../context'; +import { initialState, State } from '../state'; + +interface TestProviderProps { + state?: State; +} + +export const TestProvider: FC> = ({ + children, + state = initialState, +}) => { + const store = configureStore({ + reducer, + devTools: false, + preloadedState: state, + enhancers: [], + }); + + return ( + + + {children} + + + ); +}; diff --git a/packages/kbn-expandable-flyout/src/types.ts b/packages/kbn-expandable-flyout/src/types.ts index 92c4af79024b8..2d95426abddec 100644 --- a/packages/kbn-expandable-flyout/src/types.ts +++ b/packages/kbn-expandable-flyout/src/types.ts @@ -7,9 +7,9 @@ */ import React from 'react'; -import { State } from './reducer'; +import { State } from './state'; -export interface ExpandableFlyoutContextValue { +export interface ExpandableFlyoutApi { /** * Right, left and preview panels */ diff --git a/packages/kbn-ftr-common-functional-services/services/retry/retry.ts b/packages/kbn-ftr-common-functional-services/services/retry/retry.ts index 231a829225dbc..383e37511ef8f 100644 --- a/packages/kbn-ftr-common-functional-services/services/retry/retry.ts +++ b/packages/kbn-ftr-common-functional-services/services/retry/retry.ts @@ -17,22 +17,29 @@ export class RetryService extends FtrService { public async tryForTime( timeout: number, block: () => Promise, - onFailureBlock?: () => Promise + onFailureBlock?: () => Promise, + retryDelay?: number ) { return await retryForSuccess(this.log, { timeout, methodName: 'retry.tryForTime', block, onFailureBlock, + retryDelay, }); } - public async try(block: () => Promise, onFailureBlock?: () => Promise) { + public async try( + block: () => Promise, + onFailureBlock?: () => Promise, + retryDelay?: number + ) { return await retryForSuccess(this.log, { timeout: this.config.get('timeouts.try'), methodName: 'retry.try', block, onFailureBlock, + retryDelay, }); } diff --git a/packages/kbn-ftr-common-functional-services/services/retry/retry_for_success.ts b/packages/kbn-ftr-common-functional-services/services/retry/retry_for_success.ts index 088f6fedc85f7..f59d76028b9f9 100644 --- a/packages/kbn-ftr-common-functional-services/services/retry/retry_for_success.ts +++ b/packages/kbn-ftr-common-functional-services/services/retry/retry_for_success.ts @@ -44,14 +44,21 @@ interface Options { onFailureBlock?: () => Promise; onFailure?: ReturnType; accept?: (v: T) => boolean; + retryDelay?: number; } export async function retryForSuccess(log: ToolingLog, options: Options) { - const { timeout, methodName, block, onFailureBlock, accept = returnTrue } = options; + const { + timeout, + methodName, + block, + onFailureBlock, + accept = returnTrue, + retryDelay = 502, + } = options; const { onFailure = defaultOnFailure(methodName) } = options; const start = Date.now(); - const retryDelay = 502; const criticalWebDriverErrors = ['NoSuchSessionError', 'NoSuchWindowError']; let lastError; diff --git a/packages/kbn-ftr-common-functional-ui-services/index.ts b/packages/kbn-ftr-common-functional-ui-services/index.ts index 5fe8ae6fd0164..cd383a03e5f5d 100644 --- a/packages/kbn-ftr-common-functional-ui-services/index.ts +++ b/packages/kbn-ftr-common-functional-ui-services/index.ts @@ -8,3 +8,17 @@ export { services as commonFunctionalUIServices } from './services/all'; export type { FtrProviderContext } from './services/ftr_provider_context'; +export { WebElementWrapper } from './services/web_element_wrapper'; +export type { + CustomCheerio, + CustomCheerioStatic, +} from './services/web_element_wrapper/custom_cheerio_api'; +export { Browsers } from './services/remote/browsers'; +export { type Browser } from './services/browser'; +export { + NETWORK_PROFILES, + type NetworkOptions, + type NetworkProfile, +} from './services/remote/network_profiles'; +export type { TimeoutOpt } from './types'; +export { TestSubjects } from './services/test_subjects'; diff --git a/packages/kbn-ftr-common-functional-ui-services/services/all.ts b/packages/kbn-ftr-common-functional-ui-services/services/all.ts index 8c8a723660117..313aa6eb0b71f 100644 --- a/packages/kbn-ftr-common-functional-ui-services/services/all.ts +++ b/packages/kbn-ftr-common-functional-ui-services/services/all.ts @@ -7,7 +7,15 @@ */ import { RetryOnStaleProvider } from './retry_on_stale'; +import { RemoteProvider } from './remote'; +import { FindProvider } from './find'; +import { TestSubjects } from './test_subjects'; +import { BrowserProvider } from './browser'; export const services = { retryOnStale: RetryOnStaleProvider, + __webdriver__: RemoteProvider, + find: FindProvider, + testSubjects: TestSubjects, + browser: BrowserProvider, }; diff --git a/test/functional/services/common/browser.ts b/packages/kbn-ftr-common-functional-ui-services/services/browser.ts similarity index 99% rename from test/functional/services/common/browser.ts rename to packages/kbn-ftr-common-functional-ui-services/services/browser.ts index cac8eec71e7f4..8e26a0d9dac9f 100644 --- a/test/functional/services/common/browser.ts +++ b/packages/kbn-ftr-common-functional-ui-services/services/browser.ts @@ -15,14 +15,14 @@ import Url from 'url'; import { NoSuchSessionError } from 'selenium-webdriver/lib/error'; import sharp from 'sharp'; -import { FtrService, type FtrProviderContext } from '../../ftr_provider_context'; -import { WebElementWrapper } from '../lib/web_element_wrapper'; -import { Browsers } from '../remote/browsers'; import { + WebElementWrapper, + Browsers, NETWORK_PROFILES, type NetworkOptions, type NetworkProfile, -} from '../remote/network_profiles'; +} from '..'; +import { FtrService, type FtrProviderContext } from './ftr_provider_context'; export type Browser = BrowserService; diff --git a/packages/kbn-ftr-common-functional-ui-services/services/find.ts b/packages/kbn-ftr-common-functional-ui-services/services/find.ts new file mode 100644 index 0000000000000..2f8ba340c40be --- /dev/null +++ b/packages/kbn-ftr-common-functional-ui-services/services/find.ts @@ -0,0 +1,542 @@ +/* + * 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 { WebDriver, WebElement, By, until } from 'selenium-webdriver'; + +import { Browsers } from './remote/browsers'; +import type { FtrProviderContext } from './ftr_provider_context'; +import { WebElementWrapper } from './web_element_wrapper'; +import { TimeoutOpt } from '../types'; + +import { FtrService } from './ftr_provider_context'; + +export class FindService extends FtrService { + private readonly log = this.ctx.getService('log'); + private readonly config = this.ctx.getService('config'); + private readonly retry = this.ctx.getService('retry'); + private readonly retryOnStale = this.ctx.getService('retryOnStale'); + + private readonly WAIT_FOR_EXISTS_TIME = this.config.get('timeouts.waitForExists'); + private readonly POLLING_TIME = 500; + private readonly defaultFindTimeout = this.config.get('timeouts.find'); + private readonly fixedHeaderHeight = this.config.get('layout.fixedHeaderHeight'); + + public currentWait = this.defaultFindTimeout; + + constructor( + ctx: FtrProviderContext, + private readonly browserType: Browsers, + private readonly driver: WebDriver + ) { + super(ctx); + } + + public async byName( + selector: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.byName('${selector}') with timeout=${timeout}`); + return await this.findAndWrap(By.name(selector), timeout); + } + + public async byCssSelector( + selector: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.findByCssSelector('${selector}') with timeout=${timeout}`); + return this.findAndWrap(By.css(selector), timeout); + } + + public async byXPath( + selector: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.byXPath('${selector}') with timeout=${timeout}`); + return this.findAndWrap(By.xpath(selector), timeout); + } + + public async byClassName( + selector: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.findByClassName('${selector}') with timeout=${timeout}`); + return this.findAndWrap(By.className(selector), timeout); + } + + public async activeElement(): Promise { + return this.wrap(await this.driver.switchTo().activeElement()); + } + + public async setValue(selector: string, text: string, topOffset?: number): Promise { + this.log.debug(`Find.setValue('${selector}', '${text}')`); + return await this.retry.try(async () => { + const element = await this.byCssSelector(selector); + await element.click(topOffset); + + // in case the input element is actually a child of the testSubject, we + // call clearValue() and type() on the element that is focused after + // clicking on the testSubject + const input = await this.activeElement(); + if (input) { + await input.clearValue(); + await input.type(text); + } else { + await element.clearValue(); + await element.type(text); + } + }); + } + + public async setValueByClass(selector: string, text: string, topOffset?: number): Promise { + this.log.debug(`Find.setValueByClass('${selector}', '${text}')`); + return await this.retry.try(async () => { + const element = await this.byClassName(selector); + await element.click(topOffset); + + // in case the input element is actually a child of the testSubject, we + // call clearValue() and type() on the element that is focused after + // clicking on the testSubject + const input = await this.activeElement(); + if (input) { + await input.clearValue(); + await input.type(text); + } else { + await element.clearValue(); + await element.type(text); + } + }); + } + + public async selectValue(selector: string, value: string): Promise { + this.log.debug(`Find.selectValue('${selector}', option[value="${value}"]')`); + const combobox = await this.byCssSelector(selector); + const $ = await combobox.parseDomContent(); + const text = $(`option[value="${value}"]`).text(); + await combobox.type(text); + } + + public async filterElementIsDisplayed(elements: WebElementWrapper[]) { + if (elements.length === 0) { + return []; + } else { + const displayed = []; + // tslint:disable-next-line:prefer-for-of + for (let i = 0; i < elements.length; i++) { + const isDisplayed = await elements[i].isDisplayed(); + if (isDisplayed) { + displayed.push(elements[i]); + } + } + return displayed; + } + } + + public async allByCssSelector( + selector: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.allByCssSelector('${selector}') with timeout=${timeout}`); + await this._withTimeout(timeout); + try { + const elements = await this.driver.findElements(By.css(selector)); + return this.wrapAll(elements); + } finally { + await this._withTimeout(this.defaultFindTimeout); + } + } + + public async descendantExistsByCssSelector( + selector: string, + parentElement: WebElementWrapper, + timeout: number = this.WAIT_FOR_EXISTS_TIME + ): Promise { + this.log.debug(`Find.descendantExistsByCssSelector('${selector}') with timeout=${timeout}`); + await this._withTimeout(timeout); + try { + const els = await parentElement._webElement.findElements(By.css(selector)); + return await this.exists(async () => this.wrapAll(els), timeout); + } finally { + await this._withTimeout(this.defaultFindTimeout); + } + } + + public async descendantDisplayedByCssSelector( + selector: string, + parentElement: WebElementWrapper + ): Promise { + this.log.debug(`Find.descendantDisplayedByCssSelector('${selector}')`); + const element = await parentElement._webElement.findElement(By.css(selector)); + const descendant = this.wrap(element, By.css(selector)); + const isDisplayed = await descendant.isDisplayed(); + if (isDisplayed) { + return descendant; + } else { + throw new Error(`Element "${selector}" is not displayed`); + } + } + + public async allDescendantDisplayedByCssSelector( + selector: string, + parentElement: WebElementWrapper + ): Promise { + this.log.debug(`Find.allDescendantDisplayedByCssSelector('${selector}')`); + const allElements = await this.wrapAll( + await parentElement._webElement.findElements(By.css(selector)) + ); + return await this.filterElementIsDisplayed(allElements); + } + + public async allDescendantDisplayedByTagName( + tagName: string, + parentElement: WebElementWrapper + ): Promise { + this.log.debug(`Find.allDescendantDisplayedByTagName('${tagName}')`); + const allElements = await this.wrapAll( + await parentElement._webElement.findElements(By.css(tagName)) + ); + return await this.filterElementIsDisplayed(allElements); + } + + public async displayedByLinkText( + linkText: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.displayedByLinkText('${linkText}') with timeout=${timeout}`); + const element = await this.byLinkText(linkText, timeout); + this.log.debug(`Wait for element become visible: ${linkText} with timeout=${timeout}`); + await this.driver.wait(until.elementIsVisible(element._webElement), timeout); + return this.wrap(element, By.linkText(linkText)); + } + + public async displayedByCssSelector( + selector: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.displayedByCssSelector(${selector})`); + const element = await this.byCssSelector(selector, timeout); + this.log.debug(`Wait for element become visible: ${selector} with timeout=${timeout}`); + await this.driver.wait(until.elementIsVisible(element._webElement), timeout); + return this.wrap(element, By.css(selector)); + } + + public async byLinkText( + selector: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.byLinkText('${selector}') with timeout=${timeout}`); + return this.findAndWrap(By.linkText(selector), timeout); + } + + public async byPartialLinkText( + partialLinkText: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.byPartialLinkText('${partialLinkText}') with timeout=${timeout}`); + return this.findAndWrap(By.partialLinkText(partialLinkText), timeout); + } + + public async exists( + findFunction: ( + el: WebDriver + ) => + | WebElementWrapper + | WebElementWrapper[] + | Promise + | Promise, + timeout: number = this.WAIT_FOR_EXISTS_TIME + ): Promise { + await this._withTimeout(timeout); + try { + const found = await findFunction(this.driver); + await this._withTimeout(this.defaultFindTimeout); + if (Array.isArray(found)) { + return found.length > 0; + } else { + return found instanceof WebElementWrapper; + } + } catch (err) { + await this._withTimeout(this.defaultFindTimeout); + return false; + } + } + + public async existsByLinkText( + linkText: string, + timeout: number = this.WAIT_FOR_EXISTS_TIME + ): Promise { + this.log.debug(`Find.existsByLinkText('${linkText}') with timeout=${timeout}`); + return await this.exists( + async (drive) => this.wrapAll(await drive.findElements(By.linkText(linkText))), + timeout + ); + } + + public async existsByDisplayedByCssSelector( + selector: string, + timeout: number = this.WAIT_FOR_EXISTS_TIME + ): Promise { + this.log.debug(`Find.existsByDisplayedByCssSelector('${selector}') with timeout=${timeout}`); + try { + await this.retry.tryForTime(timeout, async () => { + // make sure that the find timeout is not longer than the retry timeout + await this._withTimeout(Math.min(timeout, this.WAIT_FOR_EXISTS_TIME)); + const elements = await this.driver.findElements(By.css(selector)); + await this._withTimeout(this.defaultFindTimeout); + const displayed = await this.filterElementIsDisplayed(this.wrapAll(elements)); + if (displayed.length === 0) { + throw new Error(`${selector} is not displayed`); + } + }); + } catch (err) { + await this._withTimeout(this.defaultFindTimeout); + return false; + } + return true; + } + + public async existsByCssSelector( + selector: string, + timeout: number = this.WAIT_FOR_EXISTS_TIME + ): Promise { + this.log.debug(`Find.existsByCssSelector('${selector}') with timeout=${timeout}`); + return await this.exists(async (drive) => { + return this.wrapAll(await drive.findElements(By.css(selector))); + }, timeout); + } + + public async existsByXpath( + selector: string, + timeout: number = this.WAIT_FOR_EXISTS_TIME + ): Promise { + this.log.debug(`Find.existsByXpath('${selector}') with timeout=${timeout}`); + return await this.exists(async (drive) => { + return this.wrapAll(await drive.findElements(By.xpath(selector))); + }, timeout); + } + + public async clickByCssSelectorWhenNotDisabled(selector: string, opts?: TimeoutOpt) { + const timeout = opts?.timeout ?? this.defaultFindTimeout; + + await this.retryOnStale(async () => { + this.log.debug(`Find.clickByCssSelectorWhenNotDisabled(${selector}, timeout=${timeout})`); + + const element = await this.byCssSelector(selector); + await element.moveMouseTo(); + await this.driver.wait(until.elementIsEnabled(element._webElement), timeout); + await element.click(); + }); + } + + public async clickByCssSelectorWhenNotDisabledWithoutRetry( + selector: string, + opts?: TimeoutOpt + ): Promise { + const timeout = opts?.timeout ?? this.defaultFindTimeout; + + this.log.debug( + `Find.clickByCssSelectorWhenNotDisabledWithoutRetry(${selector}, timeout=${timeout})` + ); + + // Don't wrap this code in a retry, or stale element checks may get caught here and the element + // will never be re-grabbed. Let errors bubble, but continue checking for disabled property until + // it's gone. + const element = await this.byCssSelector(selector); + await element.moveMouseTo(); + await this.driver.wait(until.elementIsEnabled(element._webElement), timeout); + await element.click(); + } + + public async clickByPartialLinkText( + linkText: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.clickByPartialLinkText('${linkText}') with timeout=${timeout}`); + await this.retry.try(async () => { + const element = await this.byPartialLinkText(linkText, timeout); + await element.moveMouseTo(); + await element.click(); + }); + } + + public async clickByLinkText( + linkText: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.clickByLinkText('${linkText}') with timeout=${timeout}`); + await this.retry.try(async () => { + const element = await this.byLinkText(linkText, timeout); + await element.moveMouseTo(); + await element.click(); + }); + } + + public async byButtonText( + buttonText: string, + element: WebDriver | WebElement | WebElementWrapper = this.driver, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.byButtonText('${buttonText}') with timeout=${timeout}`); + return await this.retry.tryForTime(timeout, async () => { + // tslint:disable-next-line:variable-name + const _element = element instanceof WebElementWrapper ? element._webElement : element; + const allButtons = this.wrapAll(await _element.findElements(By.css('button'))); + const buttonTexts = await Promise.all( + allButtons.map(async (el) => { + return el.getVisibleText(); + }) + ); + const index = buttonTexts.findIndex((text) => text.trim() === buttonText.trim()); + if (index === -1) { + throw new Error('Button not found'); + } + return allButtons[index]; + }); + } + + public async clickByButtonText( + buttonText: string, + element: WebDriver | WebElement | WebElementWrapper = this.driver, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.clickByButtonText('${buttonText}') with timeout=${timeout}`); + await this.retry.try(async () => { + const button = await this.byButtonText(buttonText, element, timeout); + await button.click(); + }); + } + + public async clickByCssSelector( + selector: string, + timeout: number = this.defaultFindTimeout, + topOffset?: number + ): Promise { + this.log.debug(`Find.clickByCssSelector('${selector}') with timeout=${timeout}`); + await this.retry.try(async () => { + const element = await this.byCssSelector(selector, timeout); + if (element) { + // await element.moveMouseTo(); + await element.click(topOffset); + } else { + throw new Error(`Element with css='${selector}' is not found`); + } + }); + } + + public async clickByDisplayedLinkText( + linkText: string, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.clickByDisplayedLinkText('${linkText}') with timeout=${timeout}`); + await this.retry.try(async () => { + const element = await this.displayedByLinkText(linkText, timeout); + if (element) { + await element.moveMouseTo(); + await element.click(); + } else { + throw new Error(`Element with linkText='${linkText}' is not found`); + } + }); + } + + public async clickDisplayedByCssSelector( + selector: string, + timeout: number = this.defaultFindTimeout + ) { + this.log.debug(`Find.clickDisplayedByCssSelector('${selector}') with timeout=${timeout}`); + await this.retry.try(async () => { + const element = await this.displayedByCssSelector(selector, timeout); + if (element) { + await element.moveMouseTo(); + await element.click(); + } else { + throw new Error(`Element with css='${selector}' is not found`); + } + }); + } + + public async waitForDeletedByCssSelector( + selector: string, + timeout: number = this.defaultFindTimeout + ) { + this.log.debug(`Find.waitForDeletedByCssSelector('${selector}') with timeout=${timeout}`); + await this._withTimeout(this.POLLING_TIME); + try { + await this.driver.wait( + async () => { + const found = await this.driver.findElements(By.css(selector)); + return found.length === 0; + }, + timeout, + `The element ${selector} was still present when it should have disappeared.` + ); + } finally { + await this._withTimeout(this.defaultFindTimeout); + } + } + + public async waitForAttributeToChange( + selector: string, + attribute: string, + value: string + ): Promise { + this.log.debug(`Find.waitForAttributeToChange('${selector}', '${attribute}', '${value}')`); + await this.retry.waitFor(`${attribute} to equal "${value}"`, async () => { + const el = await this.byCssSelector(selector); + return value === (await el.getAttribute(attribute)); + }); + } + + public async waitForElementStale( + element: WebElementWrapper, + timeout: number = this.defaultFindTimeout + ): Promise { + this.log.debug(`Find.waitForElementStale with timeout=${timeout}`); + await this.driver.wait(until.stalenessOf(element._webElement), timeout); + } + + public async waitForElementHidden( + element: WebElementWrapper, + timeout: number = this.defaultFindTimeout + ) { + this.log.debug(`Find.waitForElementHidden with timeout=${timeout}`); + await this.driver.wait(until.elementIsNotVisible(element._webElement), timeout); + } + + private async _withTimeout(timeout: number) { + if (timeout !== this.currentWait) { + this.currentWait = timeout; + await this.driver.manage().setTimeouts({ implicit: timeout }); + } + } + + private wrap(webElement: WebElement | WebElementWrapper, locator: By | null = null) { + return WebElementWrapper.create( + webElement, + locator, + this.driver, + this.defaultFindTimeout, + this.fixedHeaderHeight, + this.log, + this.browserType + ); + } + + private wrapAll(webElements: Array) { + return webElements.map((e) => this.wrap(e)); + } + + private async findAndWrap(locator: By, timeout: number): Promise { + const webElement = await this.driver.wait(until.elementLocated(locator), timeout); + return this.wrap(webElement, locator); + } +} + +export async function FindProvider(ctx: FtrProviderContext) { + const { browserType, driver } = await ctx.getService('__webdriver__').init(); + return new FindService(ctx, browserType, driver); +} diff --git a/packages/kbn-ftr-common-functional-ui-services/services/ftr_provider_context.ts b/packages/kbn-ftr-common-functional-ui-services/services/ftr_provider_context.ts index 979658fbd8edd..992fe27059e45 100644 --- a/packages/kbn-ftr-common-functional-ui-services/services/ftr_provider_context.ts +++ b/packages/kbn-ftr-common-functional-ui-services/services/ftr_provider_context.ts @@ -7,10 +7,13 @@ */ import { GenericFtrProviderContext, GenericFtrService } from '@kbn/test'; +import { RetryService } from '@kbn/ftr-common-functional-services'; +import { services as commonFunctionalUiServices } from './all'; -import type { services } from './all'; +const services = { + ...commonFunctionalUiServices, + retry: RetryService, +}; -type Services = typeof services; - -export type FtrProviderContext = GenericFtrProviderContext; +export type FtrProviderContext = GenericFtrProviderContext; export class FtrService extends GenericFtrService {} diff --git a/test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/config.js b/packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/config.js similarity index 100% rename from test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/config.js rename to packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/config.js diff --git a/test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/test.js b/packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/test.js similarity index 100% rename from test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/test.js rename to packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/test.js diff --git a/test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/test2.js b/packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/test2.js similarity index 100% rename from test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/test2.js rename to packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/test2.js diff --git a/test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/test3.1.js b/packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/test3.1.js similarity index 100% rename from test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/test3.1.js rename to packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/test3.1.js diff --git a/test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/test3.js b/packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/test3.js similarity index 100% rename from test/functional/services/remote/__tests__/fixtures/several_nested_window_size_changes/test3.js rename to packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/test3.js diff --git a/test/functional/services/remote/__tests__/remote_default_window_size.js b/packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/remote_default_window_size.js similarity index 89% rename from test/functional/services/remote/__tests__/remote_default_window_size.js rename to packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/remote_default_window_size.js index 48210ea209da6..8d5182c457331 100644 --- a/test/functional/services/remote/__tests__/remote_default_window_size.js +++ b/packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/remote_default_window_size.js @@ -9,9 +9,12 @@ import { fork } from 'child_process'; import expect from '@kbn/expect'; +import { REPO_ROOT } from '@kbn/repo-info'; -const FTR_SCRIPT = require.resolve('../../../../../scripts/functional_test_runner'); -const CONFIG_PATH = require.resolve('./fixtures/several_nested_window_size_changes/config.js'); +const FTR_SCRIPT = require.resolve(`${REPO_ROOT}/scripts/functional_test_runner`); +const CONFIG_PATH = require.resolve( + `${REPO_ROOT}/packages/kbn-ftr-common-functional-ui-services/services/remote/__tests__/fixtures/several_nested_window_size_changes/config.js` +); const SECOND = 1000; const DEFAULT_SIZE = { width: 1600, height: 1000 }; diff --git a/test/functional/services/remote/browsers.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/browsers.ts similarity index 100% rename from test/functional/services/remote/browsers.ts rename to packages/kbn-ftr-common-functional-ui-services/services/remote/browsers.ts diff --git a/test/functional/services/remote/create_stdout_stream.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/create_stdout_stream.ts similarity index 100% rename from test/functional/services/remote/create_stdout_stream.ts rename to packages/kbn-ftr-common-functional-ui-services/services/remote/create_stdout_stream.ts diff --git a/packages/kbn-ftr-common-functional-ui-services/services/remote/index.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/index.ts new file mode 100644 index 0000000000000..a85a13948ccc3 --- /dev/null +++ b/packages/kbn-ftr-common-functional-ui-services/services/remote/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. + */ + +export { RemoteProvider } from './remote'; +export { Browsers } from './browsers'; +export { NETWORK_PROFILES, type NetworkOptions, type NetworkProfile } from './network_profiles'; diff --git a/test/functional/services/remote/network_profiles.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts similarity index 100% rename from test/functional/services/remote/network_profiles.ts rename to packages/kbn-ftr-common-functional-ui-services/services/remote/network_profiles.ts diff --git a/packages/kbn-ftr-common-functional-ui-services/services/remote/poll_for_log_entry.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/poll_for_log_entry.ts new file mode 100644 index 0000000000000..133b3da2785f2 --- /dev/null +++ b/packages/kbn-ftr-common-functional-ui-services/services/remote/poll_for_log_entry.ts @@ -0,0 +1,70 @@ +/* + * 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 { WebDriver, logging } from 'selenium-webdriver'; +import * as Rx from 'rxjs'; +import { mergeMap, catchError, delay, repeat } from 'rxjs/operators'; +import { NoSuchSessionError, NoSuchWindowError } from 'selenium-webdriver/lib/error'; + +export const FINAL_LOG_ENTRY_PREFIX = 'WEBDRIVER SESSION IS STOPPED'; + +/** + * Create an observable that emits log entries representing the calls to log messages + * available for a specific logger. + */ +export function pollForLogEntry$(driver: WebDriver, type: string, ms: number) { + const logCtrl = driver.manage().logs(); + + // setup log polling + return Rx.defer(async () => await logCtrl.get(type)).pipe( + // filter and flatten list of entries + mergeMap((entries) => + entries.filter((entry) => { + // ignore react devtools + if (entry.message.includes('Download the React DevTools')) { + return false; + } + + // down-level inline script errors + if (entry.message.includes('Refused to execute inline script')) { + entry.level = logging.getLevel('INFO'); + } + + return true; + }) + ), + + // resubscribe when parent completes with delay by `ms` milliseconds + repeat(), + delay(ms), + + catchError((error, resubscribe) => { + if ( + error instanceof NoSuchSessionError || // session is invalid + error instanceof NoSuchWindowError || // browser window crashed + error?.message.startsWith('ECONNREFUSED') // webdriver server is not responding, often after one of previous errors + ) { + // WebDriver session is invalid, sending the last log message + return Rx.concat([ + new logging.Entry('SEVERE', `${FINAL_LOG_ENTRY_PREFIX}: ${error.message}`), + ]); + } else { + return Rx.concat( + // log error as a log entry + [new logging.Entry('SEVERE', `ERROR FETCHING BROWSR LOGS: ${error.message}`)], + + // pause 10 seconds then resubscribe + Rx.of(1).pipe( + delay(10 * 1000), + mergeMap(() => resubscribe) + ) + ); + } + }) + ); +} diff --git a/test/functional/services/remote/prevent_parallel_calls.test.js b/packages/kbn-ftr-common-functional-ui-services/services/remote/prevent_parallel_calls.test.js similarity index 100% rename from test/functional/services/remote/prevent_parallel_calls.test.js rename to packages/kbn-ftr-common-functional-ui-services/services/remote/prevent_parallel_calls.test.js diff --git a/test/functional/services/remote/prevent_parallel_calls.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/prevent_parallel_calls.ts similarity index 100% rename from test/functional/services/remote/prevent_parallel_calls.ts rename to packages/kbn-ftr-common-functional-ui-services/services/remote/prevent_parallel_calls.ts diff --git a/test/functional/services/remote/remote.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts similarity index 98% rename from test/functional/services/remote/remote.ts rename to packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts index 6ee7b6e8d9085..6eb10984eeb66 100644 --- a/test/functional/services/remote/remote.ts +++ b/packages/kbn-ftr-common-functional-ui-services/services/remote/remote.ts @@ -7,7 +7,7 @@ */ import { NoSuchSessionError, NoSuchWindowError } from 'selenium-webdriver/lib/error'; -import { FtrProviderContext } from '../../ftr_provider_context'; +import { FtrProviderContext } from '../ftr_provider_context'; import { initWebDriver, BrowserConfig } from './webdriver'; import { Browsers } from './browsers'; diff --git a/test/functional/services/remote/webdriver.ts b/packages/kbn-ftr-common-functional-ui-services/services/remote/webdriver.ts similarity index 92% rename from test/functional/services/remote/webdriver.ts rename to packages/kbn-ftr-common-functional-ui-services/services/remote/webdriver.ts index 702f674b3c10d..49a43817efc62 100644 --- a/test/functional/services/remote/webdriver.ts +++ b/packages/kbn-ftr-common-functional-ui-services/services/remote/webdriver.ts @@ -10,11 +10,11 @@ import { resolve } from 'path'; import Fs from 'fs'; import * as Rx from 'rxjs'; -import { mergeMap, map, takeUntil, catchError, ignoreElements } from 'rxjs/operators'; +import { mergeMap, map, catchError, ignoreElements, takeWhile } from 'rxjs/operators'; import { Lifecycle } from '@kbn/test'; import { ToolingLog } from '@kbn/tooling-log'; import chromeDriver from 'chromedriver'; -import { Builder, logging } from 'selenium-webdriver'; +import { Builder, logging, WebDriver } from 'selenium-webdriver'; import chrome from 'selenium-webdriver/chrome'; import firefox from 'selenium-webdriver/firefox'; import edge from 'selenium-webdriver/edge'; @@ -25,7 +25,7 @@ import { getLogger } from 'selenium-webdriver/lib/logging'; import { installDriver } from 'ms-chromium-edge-driver'; import { REPO_ROOT } from '@kbn/repo-info'; -import { pollForLogEntry$ } from './poll_for_log_entry'; +import { FINAL_LOG_ENTRY_PREFIX, pollForLogEntry$ } from './poll_for_log_entry'; import { createStdoutSocket } from './create_stdout_stream'; import { preventParallelCalls } from './prevent_parallel_calls'; @@ -139,6 +139,18 @@ function initChromiumOptions(browserType: Browsers, acceptInsecureCerts: boolean return options; } +function pollForChromiumLogs$(session: WebDriver, logPollingMs: number) { + return pollForLogEntry$(session, logging.Type.BROWSER, logPollingMs).pipe( + takeWhile( + (loggingEntry: logging.Entry) => !loggingEntry.message.startsWith(FINAL_LOG_ENTRY_PREFIX) + ), + map(({ message, level: { name: level } }) => ({ + message: message.replace(/\\n/g, '\n'), + level, + })) + ); +} + let attemptCounter = 0; let edgePaths: { driverPath: string | undefined; browserPath: string | undefined }; async function attemptToCreateCommand( @@ -175,18 +187,7 @@ async function attemptToCreateCommand( return { session, - consoleLog$: pollForLogEntry$( - session, - logging.Type.BROWSER, - config.logPollingMs, - lifecycle.cleanup.after$ - ).pipe( - takeUntil(lifecycle.cleanup.after$), - map(({ message, level: { name: level } }) => ({ - message: message.replace(/\\n/g, '\n'), - level, - })) - ), + consoleLog$: pollForChromiumLogs$(session, config.logPollingMs), }; } @@ -203,18 +204,7 @@ async function attemptToCreateCommand( .build(); return { session, - consoleLog$: pollForLogEntry$( - session, - logging.Type.BROWSER, - config.logPollingMs, - lifecycle.cleanup.after$ - ).pipe( - takeUntil(lifecycle.cleanup.after$), - map(({ message, level: { name: level } }) => ({ - message: message.replace(/\\n/g, '\n'), - level, - })) - ), + consoleLog$: pollForChromiumLogs$(session, config.logPollingMs), }; } else { throw new Error( diff --git a/packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts b/packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts new file mode 100644 index 0000000000000..730b7a692aabe --- /dev/null +++ b/packages/kbn-ftr-common-functional-ui-services/services/test_subjects.ts @@ -0,0 +1,424 @@ +/* + * 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 { subj as testSubjSelector } from '@kbn/test-subj-selector'; +import { WebElementWrapper } from './web_element_wrapper'; +import type { TimeoutOpt } from '../types'; +import { FtrService } from './ftr_provider_context'; + +interface ExistsOptions { + timeout?: number; + allowHidden?: boolean; +} + +interface SetValueOptions { + clearWithKeyboard?: boolean; + typeCharByChar?: boolean; +} + +export class TestSubjects extends FtrService { + public readonly log = this.ctx.getService('log'); + public readonly retry = this.ctx.getService('retry'); + public readonly findService = this.ctx.getService('find'); + public readonly config = this.ctx.getService('config'); + + public readonly FIND_TIME = this.config.get('timeouts.find'); + public readonly TRY_TIME = this.config.get('timeouts.try'); + public readonly WAIT_FOR_EXISTS_TIME = this.config.get('timeouts.waitForExists'); + + /** + * Get a promise that resolves with `true` when an element exists, if the element doesn't exist + * yet it will wait until the element does exist. If we wait until the timeout and the element + * still doesn't exist the promise will resolve with `false`. + * + * This method is intended to quickly answer the question "does this testSubject exist". Its + * 2.5 second timeout responds quickly, making it a good candidate for putting inside + * `retry.waitFor()` loops. + * + * When `options.timeout` is not passed the `timeouts.waitForExists` config is used as + * the timeout. The default value for that config is currently 2.5 seconds (in ms). + * + * If the element is hidden it is not treated as "existing", unless `options.allowHidden` + * is set to `true`. + */ + public async exists(selector: string, options: ExistsOptions = {}): Promise { + const { timeout = this.WAIT_FOR_EXISTS_TIME, allowHidden = false } = options; + + this.log.debug(`TestSubjects.exists(${selector})`); + return await (allowHidden + ? this.findService.existsByCssSelector(testSubjSelector(selector), timeout) + : this.findService.existsByDisplayedByCssSelector(testSubjSelector(selector), timeout)); + } + + /** + * Get a promise that resolves when an element exists, if the element doesn't exist + * before the timeout is reached the promise will reject with an error. + * + * This method is intended to be used as success critieria when something is expected + * to exist. The default 2 minute timeout is not appropriate for all conditions, but + * hard-coding timeouts all over tests is also bad, so please use your best judgement. + * + * The options are equal to the options accepted by the {@link #exists} method except + * that `options.timeout` defaults to the `timeouts.try` config, or 2 minutes. + */ + public async existOrFail(selector: string, existsOptions?: ExistsOptions): Promise { + if (!(await this.exists(selector, { timeout: this.TRY_TIME, ...existsOptions }))) { + throw new Error(`expected testSubject(${selector}) to exist`); + } + } + + /** + * Get a promise that resolves when an element no longer exists, if the element does exist + * it will wait until the element does not exist. If we wait until the timeout and the element + * still exists the promise will reject. + * + * This method is intended to quickly assert that an element does not exist. Its + * 2.5 second timeout responds quickly. + * + * When `options.timeout` is not passed the `timeouts.waitForExists` config is used as + * the timeout. The default value for that config is currently 2.5 seconds. + * + * If the element is hidden but still in the DOM it is treated as "existing", unless `options.allowHidden` + * is set to `true`. + */ + public async missingOrFail(selector: string, options: ExistsOptions = {}): Promise { + const { timeout = this.WAIT_FOR_EXISTS_TIME, allowHidden = false } = options; + + this.log.debug(`TestSubjects.missingOrFail(${selector})`); + return await (allowHidden + ? this.waitForHidden(selector, timeout) + : this.findService.waitForDeletedByCssSelector(testSubjSelector(selector), timeout)); + } + + async stringExistsInCodeBlockOrFail(codeBlockSelector: string, stringToFind: string) { + await this.retry.try(async () => { + const responseCodeBlock = await this.find(codeBlockSelector); + const spans = await this.findService.allDescendantDisplayedByTagName( + 'span', + responseCodeBlock + ); + const foundInSpans = await Promise.all( + spans.map(async (span) => { + const text = await span.getVisibleText(); + if (text === stringToFind) { + this.log.debug(`"${text}" matched "${stringToFind}"!`); + return true; + } else { + this.log.debug(`"${text}" did not match "${stringToFind}"`); + } + }) + ); + if (!foundInSpans.find((foundInSpan) => foundInSpan)) { + throw new Error(`"${stringToFind}" was not found. Trying again...`); + } + }); + } + + public async append(selector: string, text: string): Promise { + this.log.debug(`TestSubjects.append(${selector}, ${text})`); + const input = await this.find(selector); + await input.click(); + await input.type(text); + } + + /** + * Clicks on the element identified by the testSubject selector. If the retries + * automatically on "stale element" errors unlike clickWhenNotDisabledWithoutRetry. + * `opts.timeout` defaults to the 'timeouts.find' config, which defaults to 10 seconds + */ + public async clickWhenNotDisabled(selector: string, opts?: TimeoutOpt) { + this.log.debug(`TestSubjects.clickWhenNotDisabled(${selector})`); + await this.findService.clickByCssSelectorWhenNotDisabled(testSubjSelector(selector), opts); + } + + /** + * Clicks on the element identified by the testSubject selector. Somewhat surprisingly, + * this method allows `stale element` errors to propogate, which is why it was renamed + * from `clickWhenNotDisabled()` and that method was re-implemented to be more consistent + * with the rest of the functions in this service. + * + * `opts.timeout` defaults to the 'timeouts.find' config, which defaults to 10 seconds + */ + public async clickWhenNotDisabledWithoutRetry( + selector: string, + opts?: TimeoutOpt + ): Promise { + this.log.debug(`TestSubjects.clickWhenNotDisabledWithoutRetry(${selector})`); + await this.findService.clickByCssSelectorWhenNotDisabledWithoutRetry( + testSubjSelector(selector), + opts + ); + } + + public async click( + selector: string, + timeout: number = this.FIND_TIME, + topOffset?: number + ): Promise { + this.log.debug(`TestSubjects.click(${selector})`); + await this.findService.clickByCssSelector(testSubjSelector(selector), timeout, topOffset); + } + + public async pressEnter(selector: string, timeout: number = this.FIND_TIME): Promise { + this.log.debug(`TestSubjects.pressEnter(${selector})`); + const element = await this.find(selector, timeout); + await element.focus(); + await element.pressKeys(this.ctx.getService('browser').keys.ENTER); + } + + public async doubleClick(selector: string, timeout: number = this.FIND_TIME): Promise { + this.log.debug(`TestSubjects.doubleClick(${selector})`); + const element = await this.find(selector, timeout); + await element.moveMouseTo(); + await element.doubleClick(); + } + + async descendantExists(selector: string, parentElement: WebElementWrapper): Promise { + this.log.debug(`TestSubjects.descendantExists(${selector})`); + return await this.findService.descendantExistsByCssSelector( + testSubjSelector(selector), + parentElement + ); + } + + public async findDescendant( + selector: string, + parentElement: WebElementWrapper + ): Promise { + this.log.debug(`TestSubjects.findDescendant(${selector})`); + return await this.findService.descendantDisplayedByCssSelector( + testSubjSelector(selector), + parentElement + ); + } + + public async findAllDescendant( + selector: string, + parentElement: WebElementWrapper + ): Promise { + this.log.debug(`TestSubjects.findAllDescendant(${selector})`); + return await this.findService.allDescendantDisplayedByCssSelector( + testSubjSelector(selector), + parentElement + ); + } + + public async find( + selector: string, + timeout: number = this.FIND_TIME + ): Promise { + this.log.debug(`TestSubjects.find(${selector})`); + return await this.findService.byCssSelector(testSubjSelector(selector), timeout); + } + + public async findAll(selector: string, timeout?: number): Promise { + return await this.retry.try(async () => { + this.log.debug(`TestSubjects.findAll(${selector})`); + const all = await this.findService.allByCssSelector(testSubjSelector(selector), timeout); + return await this.findService.filterElementIsDisplayed(all); + }); + } + + public async getAttributeAll(selector: string, attribute: string): Promise { + this.log.debug(`TestSubjects.getAttributeAll(${selector}, ${attribute})`); + return await this._mapAll(selector, async (element: WebElementWrapper) => { + return await element.getAttribute(attribute); + }); + } + + public async getAttribute( + selector: string, + attribute: string, + options?: + | number + | { + findTimeout?: number; + tryTimeout?: number; + } + ): Promise { + const findTimeout = + (typeof options === 'number' ? options : options?.findTimeout) ?? + this.config.get('timeouts.find'); + + const tryTimeout = + (typeof options !== 'number' ? options?.tryTimeout : undefined) ?? + this.config.get('timeouts.try'); + + this.log.debug( + `TestSubjects.getAttribute(${selector}, ${attribute}, tryTimeout=${tryTimeout}, findTimeout=${findTimeout})` + ); + + return await this.retry.tryForTime(tryTimeout, async () => { + const element = await this.find(selector, findTimeout); + return await element.getAttribute(attribute); + }); + } + + public async setValue( + selector: string, + text: string, + options: SetValueOptions = {}, + topOffset?: number + ): Promise { + return await this.retry.try(async () => { + const { clearWithKeyboard = false, typeCharByChar = false } = options; + this.log.debug(`TestSubjects.setValue(${selector}, ${text})`); + await this.click(selector, undefined, topOffset); + // in case the input element is actually a child of the testSubject, we + // call clearValue() and type() on the element that is focused after + // clicking on the testSubject + const input = await this.findService.activeElement(); + if (clearWithKeyboard === true) { + await input.clearValueWithKeyboard(); + } else { + await input.clearValue(); + } + await input.type(text, { charByChar: typeCharByChar }); + }); + } + + public async selectValue(selector: string, value: string): Promise { + await this.findService.selectValue(`[data-test-subj="${selector}"]`, value); + } + + public async isEnabled(selector: string): Promise { + this.log.debug(`TestSubjects.isEnabled(${selector})`); + const element = await this.find(selector); + return await element.isEnabled(); + } + + public async isDisplayed(selector: string, timeout?: number): Promise { + this.log.debug(`TestSubjects.isDisplayed(${selector})`); + const element = await this.find(selector, timeout); + return await element.isDisplayed(); + } + + public async isSelected(selector: string): Promise { + this.log.debug(`TestSubjects.isSelected(${selector})`); + const element = await this.find(selector); + return await element.isSelected(); + } + + public async isSelectedAll(selectorAll: string): Promise { + this.log.debug(`TestSubjects.isSelectedAll(${selectorAll})`); + return await this._mapAll(selectorAll, async (element: WebElementWrapper) => { + return await element.isSelected(); + }); + } + + public async getVisibleText(selector: string): Promise { + this.log.debug(`TestSubjects.getVisibleText(${selector})`); + const element = await this.find(selector); + return await element.getVisibleText(); + } + + async getVisibleTextAll(selectorAll: string): Promise { + this.log.debug(`TestSubjects.getVisibleTextAll(${selectorAll})`); + return await this._mapAll(selectorAll, async (element: WebElementWrapper) => { + return await element.getVisibleText(); + }); + } + + public async moveMouseTo(selector: string): Promise { + // Wrapped in a retry because even though the find should do a stale element check of it's own, we seem to + // have run into a case where the element becomes stale after the find succeeds, throwing an error during the + // moveMouseTo function. + await this.retry.try(async () => { + this.log.debug(`TestSubjects.moveMouseTo(${selector})`); + const element = await this.find(selector); + await element.moveMouseTo(); + }); + } + + private async _mapAll( + selectorAll: string, + mapFn: (element: WebElementWrapper, index: number, array: WebElementWrapper[]) => Promise + ): Promise { + return await this.retry.try(async () => { + const elements = await this.findAll(selectorAll); + return await Promise.all(elements.map(mapFn)); + }); + } + + public async waitForDeleted(selectorOrElement: string | WebElementWrapper): Promise { + if (typeof selectorOrElement === 'string') { + await this.findService.waitForDeletedByCssSelector(testSubjSelector(selectorOrElement)); + } else { + await this.findService.waitForElementStale(selectorOrElement); + } + } + + public async waitForAttributeToChange( + selector: string, + attribute: string, + value: string + ): Promise { + await this.findService.waitForAttributeToChange(testSubjSelector(selector), attribute, value); + } + + public async waitForHidden(selector: string, timeout?: number): Promise { + this.log.debug(`TestSubjects.waitForHidden(${selector})`); + const element = await this.find(selector); + await this.findService.waitForElementHidden(element, timeout); + } + + public async waitForEnabled(selector: string, timeout: number = this.TRY_TIME): Promise { + const success = await this.retry.tryForTime(timeout, async () => { + const element = await this.find(selector); + return (await element.isDisplayed()) && (await element.isEnabled()); + }); + return success; + } + + public getCssSelector(selector: string): string { + return testSubjSelector(selector); + } + + public async scrollIntoView( + selector: string, + offset?: number | { topOffset?: number; bottomOffset?: number } + ) { + const element = await this.find(selector); + await element.scrollIntoViewIfNecessary(offset); + } + + // isChecked always returns false when run on an euiSwitch, because they use the aria-checked attribute + public async isChecked(selector: string) { + const checkbox = await this.find(selector); + return await checkbox.isSelected(); + } + + public async setCheckbox(selector: string, state: 'check' | 'uncheck') { + const isChecked = await this.isChecked(selector); + const states = { check: true, uncheck: false }; + if (isChecked !== states[state]) { + this.log.debug(`updating checkbox ${selector} from ${isChecked} to ${states[state]}`); + await this.click(selector); + } + } + + public async isEuiSwitchChecked(selector: string | WebElementWrapper) { + let euiSwitch: WebElementWrapper; + if (typeof selector === 'string') { + euiSwitch = await this.find(selector); + } else { + euiSwitch = selector; + } + const isChecked = await euiSwitch.getAttribute('aria-checked'); + return isChecked === 'true'; + } + + public async setEuiSwitch(selector: string, state: 'check' | 'uncheck') { + const isChecked = await this.isEuiSwitchChecked(selector); + const states = { check: true, uncheck: false }; + if (isChecked !== states[state]) { + this.log.debug(`updating checkbox ${selector} from ${isChecked} to ${states[state]}`); + await this.click(selector); + } + } +} diff --git a/test/functional/services/lib/web_element_wrapper/custom_cheerio_api.ts b/packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts similarity index 100% rename from test/functional/services/lib/web_element_wrapper/custom_cheerio_api.ts rename to packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/custom_cheerio_api.ts diff --git a/test/functional/services/lib/web_element_wrapper/index.ts b/packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/index.ts similarity index 100% rename from test/functional/services/lib/web_element_wrapper/index.ts rename to packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/index.ts diff --git a/test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js b/packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/scroll_into_view_if_necessary.js similarity index 97% rename from test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js rename to packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/scroll_into_view_if_necessary.js index 514d1bb1d9d7b..bc3453bffa7a6 100644 --- a/test/functional/services/lib/web_element_wrapper/scroll_into_view_if_necessary.js +++ b/packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/scroll_into_view_if_necessary.js @@ -1,4 +1,4 @@ -/* eslint-disable @kbn/eslint/require-license-header */ +/* eslint-disable @kbn/eslint/require-license-header, no-var */ /* @notice * Based on the scroll-into-view-if-necessary module from npm diff --git a/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts b/packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts similarity index 99% rename from test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts rename to packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts index 6a914c7273ba3..568d8dc5cd879 100644 --- a/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts +++ b/packages/kbn-ftr-common-functional-ui-services/services/web_element_wrapper/web_element_wrapper.ts @@ -15,7 +15,7 @@ import { ToolingLog } from '@kbn/tooling-log'; import { CustomCheerio, CustomCheerioStatic } from './custom_cheerio_api'; // @ts-ignore not supported yet import { scrollIntoViewIfNecessary } from './scroll_into_view_if_necessary'; -import { Browsers } from '../../remote/browsers'; +import { Browsers } from '../remote/browsers'; interface TypeOptions { charByChar: boolean; diff --git a/packages/kbn-ftr-common-functional-ui-services/tsconfig.json b/packages/kbn-ftr-common-functional-ui-services/tsconfig.json index 0c77cc5d6b917..ccba7988041f7 100644 --- a/packages/kbn-ftr-common-functional-ui-services/tsconfig.json +++ b/packages/kbn-ftr-common-functional-ui-services/tsconfig.json @@ -2,18 +2,16 @@ "extends": "../../tsconfig.base.json", "compilerOptions": { "outDir": "target/types", - "types": [ - "jest", - "node" - ] + "types": ["jest", "cheerio", "node"] }, - "include": [ - "**/*.ts", - ], - "exclude": [ - "target/**/*" - ], + "include": ["**/*.ts"], + "exclude": ["target/**/*"], "kbn_references": [ "@kbn/test", + "@kbn/tooling-log", + "@kbn/repo-info", + "@kbn/test-subj-selector", + "@kbn/ftr-common-functional-services", + "@kbn/std" ] } diff --git a/test/functional/services/common/types.ts b/packages/kbn-ftr-common-functional-ui-services/types.ts similarity index 100% rename from test/functional/services/common/types.ts rename to packages/kbn-ftr-common-functional-ui-services/types.ts diff --git a/packages/kbn-generate-csv/index.ts b/packages/kbn-generate-csv/index.ts index 976331e2dcb43..0bc07985bd64b 100644 --- a/packages/kbn-generate-csv/index.ts +++ b/packages/kbn-generate-csv/index.ts @@ -7,3 +7,4 @@ */ export { CsvGenerator } from './src/generate_csv'; +export { CsvESQLGenerator, type JobParamsCsvESQL } from './src/generate_csv_esql'; diff --git a/packages/kbn-generate-csv/src/generate_csv.test.ts b/packages/kbn-generate-csv/src/generate_csv.test.ts index fc169dd0a834d..f4c1914acddc5 100644 --- a/packages/kbn-generate-csv/src/generate_csv.test.ts +++ b/packages/kbn-generate-csv/src/generate_csv.test.ts @@ -25,8 +25,8 @@ import { IScopedSearchClient } from '@kbn/data-plugin/server'; import { dataPluginMock } from '@kbn/data-plugin/server/mocks'; import { FieldFormatsRegistry } from '@kbn/field-formats-plugin/common'; import { CancellationToken } from '@kbn/reporting-common'; -import type { ReportingConfigType } from '@kbn/reporting-server'; import { JobParamsCSV } from '@kbn/reporting-export-types-csv-common'; +import type { ReportingConfigType } from '@kbn/reporting-server'; import { UI_SETTINGS_CSV_QUOTE_VALUES, UI_SETTINGS_CSV_SEPARATOR, @@ -37,6 +37,7 @@ import { CsvGenerator } from './generate_csv'; const createMockJob = (baseObj: any = {}): JobParamsCSV => ({ ...baseObj, }); +const mockTaskInstanceFields = { startedAt: null, retryAt: null }; describe('CsvGenerator', () => { let mockEsClient: IScopedClusterClient; @@ -145,6 +146,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -180,6 +182,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -219,6 +222,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -269,6 +273,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -328,6 +333,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -400,6 +406,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ searchSource: {}, columns: [] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -440,6 +447,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ searchSource: {}, columns: ['_id', 'sku'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -487,6 +495,7 @@ describe('CsvGenerator', () => { columns: ['_id', '_index', 'date', 'message'], }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -541,6 +550,7 @@ describe('CsvGenerator', () => { }, }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -583,6 +593,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ searchSource: {}, columns: ['product', 'category'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -621,6 +632,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ searchSource: {}, columns: ['_id', '_index', 'product', 'category'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -659,6 +671,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ searchSource: {}, columns: [] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -699,6 +712,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -737,6 +751,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', TEST_FORMULA] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -784,6 +799,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -817,6 +833,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({}), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, uiSettings: uiSettingsClient }, { searchSourceStart: mockSearchSourceService, @@ -872,6 +889,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -923,6 +941,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -960,6 +979,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -992,6 +1012,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -1041,6 +1062,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, @@ -1100,6 +1122,7 @@ describe('CsvGenerator', () => { const generateCsv = new CsvGenerator( createMockJob({ columns: ['date', 'ip', 'message'] }), mockConfig, + mockTaskInstanceFields, { es: mockEsClient, data: mockDataClient, diff --git a/packages/kbn-generate-csv/src/generate_csv.ts b/packages/kbn-generate-csv/src/generate_csv.ts index f1e15d85ee1c9..16cce7afb62ad 100644 --- a/packages/kbn-generate-csv/src/generate_csv.ts +++ b/packages/kbn-generate-csv/src/generate_csv.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import moment from 'moment'; import { lastValueFrom } from 'rxjs'; import type { Writable } from 'stream'; @@ -31,7 +32,7 @@ import { ReportingError, byteSizeValueToNumber, } from '@kbn/reporting-common'; -import type { TaskRunResult } from '@kbn/reporting-common/types'; +import type { TaskInstanceFields, TaskRunResult } from '@kbn/reporting-common/types'; import type { ReportingConfigType } from '@kbn/reporting-server'; import { CONTENT_TYPE_CSV } from './constants'; @@ -59,6 +60,7 @@ export class CsvGenerator { constructor( private job: Omit, private config: ReportingConfigType['csv'], + private taskInstanceFields: TaskInstanceFields, private clients: Clients, private dependencies: Dependencies, private cancellationToken: CancellationToken, @@ -346,16 +348,19 @@ export class CsvGenerator { } public async generateData(): Promise { + const logger = this.logger; const [settings, searchSource] = await Promise.all([ - getExportSettings( - this.clients.uiSettings, - this.config, - this.job.browserTimezone, - this.logger - ), + getExportSettings(this.clients.uiSettings, this.config, this.job.browserTimezone, logger), this.dependencies.searchSourceStart.create(this.job.searchSource), ]); - let reportingError: undefined | ReportingError; + + const { startedAt, retryAt } = this.taskInstanceFields; + if (startedAt) { + this.logger.debug( + `Task started at: ${startedAt && moment(startedAt).format()}.` + + ` Can run until: ${retryAt && moment(retryAt).format()}` + ); + } const index = searchSource.getField('index'); @@ -372,12 +377,13 @@ export class CsvGenerator { let totalRecords: number | undefined; let searchAfter: estypes.SortResults | undefined; + let reportingError: undefined | ReportingError; let pitId = await this.openPointInTime(indexPatternTitle, settings); // apply timezone from the job to all date field formatters try { index.fields.getByType('date').forEach(({ name }) => { - this.logger.debug(`Setting timezone on ${name}`); + logger.debug(`Setting timezone on ${name}`); const format: FieldFormatConfig = { ...index.fieldFormatMap[name], id: index.fieldFormatMap[name]?.id || 'date', // allow id: date_nanos @@ -389,7 +395,7 @@ export class CsvGenerator { index.setFieldFormat(name, format); }); } catch (err) { - this.logger.error(err); + logger.error(err); } const columns = new Set(this.job.columns ?? []); @@ -403,7 +409,7 @@ export class CsvGenerator { const results = await this.doSearch(searchSource, settings, searchAfter); if (!results) { - this.logger.warn(`Search results are undefined!`); + logger.warn(`Search results are undefined!`); break; } @@ -423,14 +429,14 @@ export class CsvGenerator { // Update last sort results for next query. PIT is used, so the sort results // automatically include _shard_doc as a tiebreaker searchAfter = hits[hits.length - 1]?.sort as estypes.SortResults | undefined; - this.logger.debug(`Received search_after: [${searchAfter}]`); + logger.debug(`Received search_after: [${searchAfter}]`); // check for shard failures, log them and add a warning if found const { _shards: shards } = results; if (shards.failures) { shards.failures.forEach(({ reason }) => { warnings.push(`Shard failure: ${JSON.stringify(reason)}`); - this.logger.warn(JSON.stringify(reason)); + logger.warn(JSON.stringify(reason)); }); } @@ -438,7 +444,7 @@ export class CsvGenerator { try { table = tabifyDocs(results, index, { shallow: true, includeIgnoredValues: true }); } catch (err) { - this.logger.error(err); + logger.error(err); warnings.push(i18nTexts.unknownError(err?.message ?? err)); } @@ -472,7 +478,7 @@ export class CsvGenerator { warnings.push(i18nTexts.escapedFormulaValuesMessage); } } catch (err) { - this.logger.error(err); + logger.error(err); if (err instanceof esErrors.ResponseError) { if ([401, 403].includes(err.statusCode ?? 0)) { reportingError = new AuthenticationExpiredError(); @@ -487,20 +493,20 @@ export class CsvGenerator { try { if (pitId) { - this.logger.debug(`Closing PIT ${this.formatPit(pitId)}`); + logger.debug(`Closing PIT ${this.formatPit(pitId)}`); await this.clients.es.asCurrentUser.closePointInTime({ body: { id: pitId } }); } else { - this.logger.warn(`No PIT ID to clear!`); + logger.warn(`No PIT ID to clear!`); } } catch (err) { - this.logger.error(err); + logger.error(err); warnings.push(i18nTexts.csvUnableToClosePit()); } - this.logger.info(`Finished generating. Row count: ${this.csvRowCount}.`); + logger.info(`Finished generating. Row count: ${this.csvRowCount}.`); if (!this.maxSizeReached && this.csvRowCount !== totalRecords) { - this.logger.warn( + logger.warn( `ES scroll returned fewer total hits than expected! ` + `Search result total hits: ${totalRecords}. Row count: ${this.csvRowCount}` ); diff --git a/packages/kbn-generate-csv/src/generate_csv_esql.test.ts b/packages/kbn-generate-csv/src/generate_csv_esql.test.ts new file mode 100644 index 0000000000000..e939a4126aeee --- /dev/null +++ b/packages/kbn-generate-csv/src/generate_csv_esql.test.ts @@ -0,0 +1,479 @@ +/* + * 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 Rx from 'rxjs'; +import type { Writable } from 'stream'; + +import { errors as esErrors } from '@elastic/elasticsearch'; +import type { IScopedClusterClient, IUiSettingsClient, Logger } from '@kbn/core/server'; +import { + elasticsearchServiceMock, + loggingSystemMock, + savedObjectsClientMock, + uiSettingsServiceMock, +} from '@kbn/core/server/mocks'; +import { IKibanaSearchResponse } from '@kbn/data-plugin/common'; +import { IScopedSearchClient } from '@kbn/data-plugin/server'; +import { dataPluginMock } from '@kbn/data-plugin/server/mocks'; +import { CancellationToken } from '@kbn/reporting-common'; +import type { ReportingConfigType } from '@kbn/reporting-server'; +import { + UI_SETTINGS_CSV_QUOTE_VALUES, + UI_SETTINGS_CSV_SEPARATOR, + UI_SETTINGS_DATEFORMAT_TZ, +} from './constants'; +import { CsvESQLGenerator, JobParamsCsvESQL } from './generate_csv_esql'; +import type { ESQLSearchReponse } from '@kbn/es-types'; + +const createMockJob = ( + params: Partial = { query: { esql: '' } } +): JobParamsCsvESQL => ({ + ...params, + query: { esql: '' }, +}); + +describe('CsvESQLGenerator', () => { + let mockEsClient: IScopedClusterClient; + let mockDataClient: IScopedSearchClient; + let mockConfig: ReportingConfigType['csv']; + let mockLogger: jest.Mocked; + let uiSettingsClient: IUiSettingsClient; + let stream: jest.Mocked; + let content: string; + + const getMockRawResponse = ( + esqlResponse: ESQLSearchReponse = { + columns: [], + values: [], + } + ): ESQLSearchReponse => esqlResponse; + + const mockDataClientSearchDefault = jest.fn().mockImplementation( + (): Rx.Observable> => + Rx.of({ + rawResponse: getMockRawResponse(), + }) + ); + + const mockSearchResponse = (response: ESQLSearchReponse) => { + mockDataClient.search = jest.fn().mockImplementation(() => + Rx.of({ + rawResponse: getMockRawResponse(response), + }) + ); + }; + + beforeEach(async () => { + content = ''; + stream = { write: jest.fn((chunk) => (content += chunk)) } as unknown as typeof stream; + mockEsClient = elasticsearchServiceMock.createScopedClusterClient(); + mockDataClient = dataPluginMock.createStartContract().search.asScoped({} as any); + mockDataClient.search = mockDataClientSearchDefault; + uiSettingsClient = uiSettingsServiceMock + .createStartContract() + .asScopedToClient(savedObjectsClientMock.create()); + uiSettingsClient.get = jest.fn().mockImplementation((key): any => { + switch (key) { + case UI_SETTINGS_CSV_QUOTE_VALUES: + return true; + case UI_SETTINGS_CSV_SEPARATOR: + return ','; + case UI_SETTINGS_DATEFORMAT_TZ: + return 'Browser'; + } + }); + + mockConfig = { + checkForFormulas: true, + escapeFormulaValues: true, + maxSizeBytes: 180000, + useByteOrderMarkEncoding: false, + scroll: { size: 500, duration: '30s' }, + enablePanelActionDownload: true, + maxConcurrentShardRequests: 5, + }; + + mockLogger = loggingSystemMock.createLogger(); + }); + + it('formats an empty search result to CSV content', async () => { + const generateCsv = new CsvESQLGenerator( + createMockJob({ columns: ['date', 'ip', 'message'] }), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + const csvResult = await generateCsv.generateData(); + expect(content).toMatchInlineSnapshot(` + " + " + `); + expect(csvResult.csv_contains_formulas).toBe(false); + }); + + it('formats a search result to CSV content', async () => { + mockSearchResponse({ + columns: [ + { name: 'date', type: 'date' }, + { name: 'ip', type: 'ip' }, + { name: 'message', type: 'string' }, + { name: 'geo.coordinates', type: 'geo_point' }, + ], + values: [['2020-12-31T00:14:28.000Z', '110.135.176.89', 'This is a great message!', null]], + }); + + const generateCsv = new CsvESQLGenerator( + createMockJob(), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + const csvResult = await generateCsv.generateData(); + expect(content).toMatchInlineSnapshot(` + "date,ip,message,\\"geo.coordinates\\" + \\"2020-12-31T00:14:28.000Z\\",\\"110.135.176.89\\",\\"This is a great message!\\", + " + `); + expect(csvResult.csv_contains_formulas).toBe(false); + }); + + it('calculates the bytes of the content', async () => { + mockSearchResponse({ + columns: [{ name: 'message', type: 'string' }], + values: Array(100).fill(['This is a great message!']), + }); + + const generateCsv = new CsvESQLGenerator( + createMockJob(), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + const csvResult = await generateCsv.generateData(); + expect(csvResult.max_size_reached).toBe(false); + expect(csvResult.warnings).toEqual([]); + }); + + it('warns if max size was reached', async () => { + const TEST_MAX_SIZE = 50; + mockConfig = { + ...mockConfig, + maxSizeBytes: TEST_MAX_SIZE, + }; + + mockSearchResponse({ + columns: [{ name: 'message', type: 'string' }], + values: Array(100).fill(['This is a great message!']), + }); + + const generateCsv = new CsvESQLGenerator( + createMockJob(), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + const csvResult = await generateCsv.generateData(); + expect(csvResult.max_size_reached).toBe(true); + expect(csvResult.warnings).toEqual([]); + expect(content).toMatchInlineSnapshot(` + "message + \\"This is a great message!\\" + " + `); + }); + + describe('jobParams', () => { + it('uses columns to select columns', async () => { + mockSearchResponse({ + columns: [ + { name: 'date', type: 'date' }, + { name: 'ip', type: 'ip' }, + { name: 'message', type: 'string' }, + ], + values: [['2020-12-31T00:14:28.000Z', '110.135.176.89', 'This is a great message!']], + }); + + const generateCsv = new CsvESQLGenerator( + createMockJob({ columns: ['message', 'date', 'something else'] }), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + await generateCsv.generateData(); + + expect(content).toMatchInlineSnapshot(` + "message,date + \\"This is a great message!\\",\\"2020-12-31T00:14:28.000Z\\" + " + `); + }); + + it('passes filters to the query', async () => { + const query = { esql: 'from kibana_sample_data_logs | limit 10' }; + const filters = [ + { + meta: {}, + query: { + range: { + '@timestamp': { format: 'strict_date_optional_time', gte: 'now-15m', lte: 'now' }, + }, + }, + }, + ]; + + const generateCsv = new CsvESQLGenerator( + createMockJob({ query, filters }), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + await generateCsv.generateData(); + + expect(mockDataClient.search).toHaveBeenCalledWith( + { + params: { + filter: { + bool: { + filter: [ + { + range: { + '@timestamp': { + format: 'strict_date_optional_time', + gte: 'now-15m', + lte: 'now', + }, + }, + }, + ], + must: [], + must_not: [], + should: [], + }, + }, + locale: 'en', + query: '', + }, + }, + { + strategy: 'esql', + transport: { + requestTimeout: '30s', + }, + abortSignal: expect.any(AbortSignal), + } + ); + }); + }); + + describe('formulas', () => { + const TEST_FORMULA = '=SUM(A1:A2)'; + + it(`escapes formula values in a cell, doesn't warn the csv contains formulas`, async () => { + mockSearchResponse({ + columns: [{ name: 'message', type: 'string' }], + values: [[TEST_FORMULA]], + }); + + const generateCsv = new CsvESQLGenerator( + createMockJob(), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + + const csvResult = await generateCsv.generateData(); + + expect(content).toMatchInlineSnapshot(` + "message + \\"'=SUM(A1:A2)\\" + " + `); + expect(csvResult.csv_contains_formulas).toBe(false); + }); + + it(`escapes formula values in a header, doesn't warn the csv contains formulas`, async () => { + mockSearchResponse({ + columns: [{ name: TEST_FORMULA, type: 'string' }], + values: [['This is great data']], + }); + + const generateCsv = new CsvESQLGenerator( + createMockJob(), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + + const csvResult = await generateCsv.generateData(); + + expect(content).toMatchInlineSnapshot(` + "\\"'=SUM(A1:A2)\\" + \\"This is great data\\" + " + `); + expect(csvResult.csv_contains_formulas).toBe(false); + }); + + it('can check for formulas, without escaping them', async () => { + mockConfig = { + checkForFormulas: true, + escapeFormulaValues: false, + maxSizeBytes: 180000, + useByteOrderMarkEncoding: false, + scroll: { size: 500, duration: '30s' }, + enablePanelActionDownload: true, + maxConcurrentShardRequests: 5, + }; + mockSearchResponse({ + columns: [{ name: 'message', type: 'string' }], + values: [[TEST_FORMULA]], + }); + + const generateCsv = new CsvESQLGenerator( + createMockJob(), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + + const csvResult = await generateCsv.generateData(); + + expect(content).toMatchInlineSnapshot(` + "message + \\"=SUM(A1:A2)\\" + " + `); + expect(csvResult.csv_contains_formulas).toBe(true); + }); + }); + + it('handles unknown errors', async () => { + mockDataClient.search = jest.fn().mockImplementation(() => { + throw new Error('An unknown error'); + }); + const generateCsv = new CsvESQLGenerator( + createMockJob(), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + await expect(generateCsv.generateData()).resolves.toMatchInlineSnapshot(` + Object { + "content_type": "text/csv", + "csv_contains_formulas": false, + "error_code": undefined, + "max_size_reached": false, + "metrics": Object { + "csv": Object { + "rows": 0, + }, + }, + "warnings": Array [ + "Encountered an unknown error: An unknown error", + ], + } + `); + }); + + describe('error codes', () => { + it('returns the expected error code when authentication expires', async () => { + mockDataClient.search = jest.fn().mockImplementation(() => { + throw new esErrors.ResponseError({ statusCode: 403, meta: {} as any, warnings: [] }); + }); + + const generateCsv = new CsvESQLGenerator( + createMockJob(), + mockConfig, + { + es: mockEsClient, + data: mockDataClient, + uiSettings: uiSettingsClient, + }, + new CancellationToken(), + mockLogger, + stream + ); + + const { error_code: errorCode, warnings } = await generateCsv.generateData(); + expect(errorCode).toBe('authentication_expired_error'); + expect(warnings).toMatchInlineSnapshot(` + Array [ + "This report contains partial CSV results because the authentication token expired. Export a smaller amount of data or increase the timeout of the authentication token.", + ] + `); + + expect(mockLogger.error.mock.calls).toMatchInlineSnapshot(` + Array [ + Array [ + [ResponseError: Response Error], + ], + ] + `); + }); + }); +}); diff --git a/packages/kbn-generate-csv/src/generate_csv_esql.ts b/packages/kbn-generate-csv/src/generate_csv_esql.ts new file mode 100644 index 0000000000000..81fa31b962eda --- /dev/null +++ b/packages/kbn-generate-csv/src/generate_csv_esql.ts @@ -0,0 +1,231 @@ +/* + * 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 { lastValueFrom } from 'rxjs'; +import type { Writable } from 'stream'; + +import { errors as esErrors } from '@elastic/elasticsearch'; +import type { IScopedClusterClient, IUiSettingsClient, Logger } from '@kbn/core/server'; +import type { ESQLSearchParams, ESQLSearchReponse } from '@kbn/es-types'; +import { + cellHasFormulas, + ESQL_SEARCH_STRATEGY, + getEsQueryConfig, + IKibanaSearchRequest, + IKibanaSearchResponse, +} from '@kbn/data-plugin/common'; +import type { IScopedSearchClient } from '@kbn/data-plugin/server'; +import { + AuthenticationExpiredError, + byteSizeValueToNumber, + CancellationToken, + ReportingError, +} from '@kbn/reporting-common'; +import type { TaskRunResult } from '@kbn/reporting-common/types'; +import type { ReportingConfigType } from '@kbn/reporting-server'; +import { buildEsQuery, Filter } from '@kbn/es-query'; +import { zipObject } from 'lodash'; +import { i18n } from '@kbn/i18n'; + +import { CONTENT_TYPE_CSV } from './constants'; +import { CsvExportSettings, getExportSettings } from './get_export_settings'; +import { i18nTexts } from './i18n_texts'; +import { MaxSizeStringBuilder } from './max_size_string_builder'; + +export interface JobParamsCsvESQL { + query: { esql: string }; + columns?: string[]; + filters?: Filter[]; + browserTimezone?: string; +} + +interface Clients { + es: IScopedClusterClient; + data: IScopedSearchClient; + uiSettings: IUiSettingsClient; +} + +export class CsvESQLGenerator { + private csvContainsFormulas = false; + private maxSizeReached = false; + private csvRowCount = 0; + + constructor( + private job: JobParamsCsvESQL, + private config: ReportingConfigType['csv'], + private clients: Clients, + private cancellationToken: CancellationToken, + private logger: Logger, + private stream: Writable + ) {} + + public async generateData(): Promise { + const settings = await getExportSettings( + this.clients.uiSettings, + this.config, + this.job.browserTimezone, + this.logger + ); + + let reportingError: undefined | ReportingError; + const warnings: string[] = []; + + const { maxSizeBytes, bom, escapeFormulaValues } = settings; + const builder = new MaxSizeStringBuilder(this.stream, byteSizeValueToNumber(maxSizeBytes), bom); + + const filter = + this.job.filters && + buildEsQuery( + undefined, + [], + this.job.filters, + getEsQueryConfig(this.clients.uiSettings as Parameters[0]) + ); + + const searchParams: IKibanaSearchRequest = { + params: { + query: this.job.query.esql, + filter, + // locale can be used for number/date formatting + locale: i18n.getLocale(), + // TODO: time_zone support was temporarily removed from ES|QL, + // we will need to add it back in once it is supported again. + // https://github.com/elastic/elasticsearch/pull/102767 + // timezone + }, + }; + + try { + const abortController = new AbortController(); + this.cancellationToken.on(() => abortController.abort()); + const { rawResponse, warning } = await lastValueFrom( + this.clients.data.search< + IKibanaSearchRequest, + IKibanaSearchResponse + >(searchParams, { + strategy: ESQL_SEARCH_STRATEGY, + abortSignal: abortController.signal, + transport: { + requestTimeout: settings.scroll.duration, + }, + }) + ); + + if (warning) { + warnings.push(warning); + } + + const responseColumns = rawResponse.columns?.map(({ name }) => name) ?? []; + const visibleColumns = + this.job.columns && this.job.columns.length > 0 + ? this.job.columns.filter((column) => responseColumns.includes(column)) + : responseColumns; + + const rows = rawResponse.values.map((row) => zipObject(responseColumns, row)); + + const header = + Array.from(visibleColumns).map(this.escapeValues(settings)).join(settings.separator) + '\n'; + builder.tryAppend(header); + + await this.generateRows(visibleColumns, rows, builder, settings); + } catch (err) { + this.logger.error(err); + if (err instanceof esErrors.ResponseError) { + if ([401, 403].includes(err.statusCode ?? 0)) { + reportingError = new AuthenticationExpiredError(); + warnings.push(i18nTexts.authenticationError.partialResultsMessage); + } else { + warnings.push(i18nTexts.esErrorMessage(err.statusCode ?? 0, String(err.body))); + } + } else { + warnings.push(i18nTexts.unknownError(err?.message ?? err)); + } + } + + return { + content_type: CONTENT_TYPE_CSV, + csv_contains_formulas: this.csvContainsFormulas && !escapeFormulaValues, + max_size_reached: this.maxSizeReached, + metrics: { + csv: { rows: this.csvRowCount }, + }, + warnings, + error_code: reportingError?.code, + }; + } + + /* + * Format a Datatable into rows of CSV content + */ + private async generateRows( + columns: string[], + rows: Array>, + builder: MaxSizeStringBuilder, + settings: CsvExportSettings + ) { + this.logger.debug(`Building ${rows.length} CSV data rows`); + for (const dataTableRow of rows) { + if (this.cancellationToken.isCancelled()) { + break; + } + + /* + * Intrinsically, generating the rows is a synchronous process. Awaiting + * on a setImmediate call here partititions what could be a very long and + * CPU-intenstive synchronous process into an asychronous process. This + * give NodeJS to process other asychronous events that wait on the Event + * Loop. + * + * See: https://nodejs.org/en/docs/guides/dont-block-the-event-loop/ + * + * It's likely this creates a lot of context switching, and adds to the + * time it would take to generate the CSV. There are alternatives to the + * chosen performance solution: + * + * 1. Partition the synchronous process with fewer partitions, by using + * the loop counter to call setImmediate only every N amount of rows. + * Testing is required to see what the best N value for most data will + * be. + * + * 2. Use a C++ add-on to generate the CSV using the Node Worker Pool + * instead of using the Event Loop + */ + await new Promise(setImmediate); + + const rowDefinition: string[] = []; + const escape = this.escapeValues(settings); + + for (const column of columns) { + let formattedValue: string = escape(`${dataTableRow[column]}`); + if (formattedValue === 'null') formattedValue = ''; + if (formattedValue === 'undefined') formattedValue = ''; + rowDefinition.push(formattedValue); + } + + if (!builder.tryAppend(rowDefinition.join(settings.separator) + '\n')) { + this.logger.warn(`Max Size Reached after ${this.csvRowCount} rows.`); + this.maxSizeReached = true; + if (this.cancellationToken) { + this.cancellationToken.cancel(); + } + break; + } + + this.csvRowCount++; + } + } + + private escapeValues(settings: CsvExportSettings) { + return (value: string) => { + if (settings.checkForFormulas && cellHasFormulas(value)) { + this.csvContainsFormulas = true; // set warning if cell value has a formula + } + return settings.escapeValue(value); + }; + } +} diff --git a/packages/kbn-generate-csv/tsconfig.json b/packages/kbn-generate-csv/tsconfig.json index 51dbd54dda73e..6db6b731929a1 100644 --- a/packages/kbn-generate-csv/tsconfig.json +++ b/packages/kbn-generate-csv/tsconfig.json @@ -26,5 +26,7 @@ "@kbn/reporting-common", "@kbn/reporting-server", "@kbn/reporting-export-types-csv-common", + "@kbn/es-query", + "@kbn/es-types", ] } diff --git a/packages/kbn-health-gateway-server/src/index.ts b/packages/kbn-health-gateway-server/src/index.ts index e069153eef3ff..0fc157b19e1fb 100644 --- a/packages/kbn-health-gateway-server/src/index.ts +++ b/packages/kbn-health-gateway-server/src/index.ts @@ -37,7 +37,7 @@ export async function bootstrap() { server = new Server({ config: configService, logger }); serverStart = await server.start(); } catch (e) { - log.error(`Failed to start Server: ${e}`); + log.error(`Failed to start Server: ${e.message}`); process.exit(1); } @@ -46,7 +46,7 @@ export async function bootstrap() { kibanaService = new KibanaService({ config: configService, logger }); await kibanaService.start({ server: serverStart }); } catch (e) { - log.error(`Failed to start Kibana service: ${e}`); + log.error(`Failed to start Kibana service: ${e.message}`); process.exit(1); } @@ -58,7 +58,7 @@ export async function bootstrap() { }; process.on('unhandledRejection', async (err: Error) => { - log.error(err); + log.error(`Unhandled rejection: ${err.message}`); await attemptGracefulShutdown(1); }); diff --git a/packages/kbn-journeys/journey/journey_ftr_harness.ts b/packages/kbn-journeys/journey/journey_ftr_harness.ts index 0f649e7a1de27..7becb99f3970b 100644 --- a/packages/kbn-journeys/journey/journey_ftr_harness.ts +++ b/packages/kbn-journeys/journey/journey_ftr_harness.ts @@ -8,7 +8,7 @@ import Url from 'url'; import { inspect, format } from 'util'; -import { setTimeout } from 'timers/promises'; +import { setTimeout as setTimer } from 'timers/promises'; import * as Rx from 'rxjs'; import apmNode from 'elastic-apm-node'; import playwright, { ChromiumBrowser, Page, BrowserContext, CDPSession, Request } from 'playwright'; @@ -222,7 +222,7 @@ export class JourneyFtrHarness { // can't track but hope it is started within 3 seconds, node will stay // alive for active requests // https://github.com/elastic/apm-agent-nodejs/issues/2088 - await setTimeout(3000); + await setTimer(3000); } private async onTeardown() { @@ -333,33 +333,36 @@ export class JourneyFtrHarness { private telemetryTrackerCount = 0; private trackTelemetryRequests(page: Page) { - const id = ++this.telemetryTrackerCount; - - const requestFailure$ = Rx.fromEvent(page, 'requestfailed'); - const requestSuccess$ = Rx.fromEvent(page, 'requestfinished'); - const request$ = Rx.fromEvent(page, 'request').pipe( + const requestSuccess$ = Rx.fromEvent( + page, + 'requestfinished' + ) as Rx.Observable; + const request$ = (Rx.fromEvent(page, 'request') as Rx.Observable).pipe( Rx.takeUntil( this.pageTeardown$.pipe( Rx.first((p) => p === page), Rx.delay(3000) - // If EBT client buffers: - // Rx.mergeMap(async () => { - // await page.waitForFunction(() => { - // // return window.kibana_ebt_client.buffer_size == 0 - // }); - // }) ) ), - Rx.mergeMap((request) => { + Rx.mergeMap((request: Request) => { if (!request.url().includes('telemetry-staging.elastic.co')) { return Rx.EMPTY; } - this.log.debug(`Waiting for telemetry request #${id} to complete`); - return Rx.merge(requestFailure$, requestSuccess$).pipe( - Rx.first((r) => r === request), + const id = ++this.telemetryTrackerCount; + this.log.info(`Waiting for telemetry request #${id} to complete`); + return Rx.of(requestSuccess$).pipe( + Rx.timeout(60_000), + Rx.catchError((error) => { + if (error instanceof Error && error.name === 'TimeoutError') { + this.log.error(`Timeout error occurred: ${error.message}`); + } + // Rethrow the error if it's not a TimeoutError + return Rx.throwError(() => new Error(error)); + }), Rx.tap({ - complete: () => this.log.debug(`Telemetry request #${id} complete`), + complete: () => this.log.info(`Telemetry request #${id} complete`), + error: (err) => this.log.error(`Telemetry request was not processed: ${err.message}`), }) ); }) @@ -446,6 +449,15 @@ export class JourneyFtrHarness { private onConsoleEvent = async (message: playwright.ConsoleMessage) => { try { const { url, lineNumber, columnNumber } = message.location(); + + if ( + url.includes('kbn-ui-shared-deps-npm.dll.js') || + url.includes('kbn-ui-shared-deps-src.js') + ) { + // ignore messages from kbn-ui-shared-deps-npm.dll.js & kbn-ui-shared-deps-src.js + return; + } + const location = `${url}:${lineNumber}:${columnNumber}`; const args = await asyncMap(message.args(), (handle) => handle.jsonValue()); @@ -453,8 +465,17 @@ export class JourneyFtrHarness { ? args.map((arg) => (typeof arg === 'string' ? arg : inspect(arg, false, null))).join(' ') : message.text(); - if (url.includes('kbn-ui-shared-deps-npm.dll.js')) { - // ignore errors/warning from kbn-ui-shared-deps-npm.dll.js + if (text.includes(`Unrecognized feature: 'web-share'`)) { + // ignore Error with Permissions-Policy header: Unrecognized feature: 'web-share' + return; + } + + if ( + url.includes('core.entry.js') && + args.length > 1 && + !('performance_metric' === args[1]?.ebt_event?.event_type) + ) { + // ignore events like "click", log to console only 'event_type: performance_metric' return; } diff --git a/packages/kbn-journeys/services/page/kibana_page.ts b/packages/kbn-journeys/services/page/kibana_page.ts index 8a45faf1a97cc..3001d74a8e897 100644 --- a/packages/kbn-journeys/services/page/kibana_page.ts +++ b/packages/kbn-journeys/services/page/kibana_page.ts @@ -36,6 +36,10 @@ export class KibanaPage { }); } + async waitForListViewTable() { + await this.page.waitForSelector(subj('table-is-ready'), { state: 'visible' }); + } + async backToDashboardListing() { await this.page.click(subj('breadcrumb dashboardListingBreadcrumb first')); } diff --git a/packages/kbn-lens-embeddable-utils/attribute_builder/lens_attributes_builder.test.ts b/packages/kbn-lens-embeddable-utils/attribute_builder/lens_attributes_builder.test.ts index 199379e74eb9d..2f90e03099350 100644 --- a/packages/kbn-lens-embeddable-utils/attribute_builder/lens_attributes_builder.test.ts +++ b/packages/kbn-lens-embeddable-utils/attribute_builder/lens_attributes_builder.test.ts @@ -113,15 +113,13 @@ describe('lens_attributes_builder', () => { formulaAPI, }); const builder = new LensAttributesBuilder({ visualization: metriChart }); + const { - state: { - datasourceStates: { - formBased: { layers }, - }, - visualization, - }, + state: { datasourceStates: datasourceStates, visualization }, } = builder.build(); + const layers = datasourceStates.formBased?.layers; + expect(layers).toEqual({ layer: { columnOrder: ['metric_formula_accessor'], @@ -156,14 +154,11 @@ describe('lens_attributes_builder', () => { }); const builder = new LensAttributesBuilder({ visualization: metriChart }); const { - state: { - datasourceStates: { - formBased: { layers }, - }, - visualization, - }, + state: { datasourceStates: datasourceStates, visualization }, } = builder.build(); + const layers = datasourceStates.formBased?.layers; + expect(layers).toEqual({ layer: { columnOrder: ['metric_formula_accessor'], @@ -215,14 +210,11 @@ describe('lens_attributes_builder', () => { }); const builder = new LensAttributesBuilder({ visualization: xyChart }); const { - state: { - datasourceStates: { - formBased: { layers }, - }, - visualization, - }, + state: { datasourceStates: datasourceStates, visualization }, } = builder.build(); + const layers = datasourceStates.formBased?.layers; + expect(layers).toEqual({ layer_0: { columnOrder: ['x_date_histogram', 'formula_accessor_0_0'], @@ -272,14 +264,11 @@ describe('lens_attributes_builder', () => { }); const builder = new LensAttributesBuilder({ visualization: xyChart }); const { - state: { - datasourceStates: { - formBased: { layers }, - }, - visualization, - }, + state: { datasourceStates: datasourceStates, visualization }, } = builder.build(); + const layers = datasourceStates.formBased?.layers; + expect(layers).toEqual({ layer_0: { columnOrder: ['x_date_histogram', 'formula_accessor_0_0'], @@ -340,14 +329,11 @@ describe('lens_attributes_builder', () => { }); const builder = new LensAttributesBuilder({ visualization: xyChart }); const { - state: { - datasourceStates: { - formBased: { layers }, - }, - visualization, - }, + state: { datasourceStates: datasourceStates, visualization }, } = builder.build(); + const layers = datasourceStates.formBased?.layers; + expect(layers).toEqual({ layer_0: { columnOrder: ['x_date_histogram', 'formula_accessor_0_0', 'formula_accessor_0_1'], diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/gauge.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/gauge.test.ts index 5e0e5dc1de2a7..aa13813e37b82 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/gauge.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/gauge.test.ts @@ -79,9 +79,6 @@ test('generates gauge chart config', async () => { "test": Object {}, }, "datasourceStates": Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/gauge.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/gauge.ts index def80346f6f5d..ebb6f36861189 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/gauge.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/gauge.ts @@ -18,6 +18,7 @@ import { buildDatasourceStates, buildReferences, getAdhocDataviews, + mapToFormula, } from '../utils'; import { getFormulaColumn, getValueColumn } from '../columns'; @@ -66,14 +67,7 @@ function buildFormulaLayer( ): FormBasedPersistedState['layers'][0] { const layers = { [DEFAULT_LAYER_ID]: { - ...getFormulaColumn( - ACCESSOR, - { - value: layer.value, - }, - dataView, - formulaAPI - ), + ...getFormulaColumn(ACCESSOR, mapToFormula(layer), dataView, formulaAPI), }, }; @@ -83,9 +77,7 @@ function buildFormulaLayer( const columnName = getAccessorName('goal'); const formulaColumn = getFormulaColumn( columnName, - { - value: layer.queryGoalValue, - }, + { formula: layer.queryGoalValue }, dataView, formulaAPI ); @@ -97,9 +89,7 @@ function buildFormulaLayer( const columnName = getAccessorName('min'); const formulaColumn = getFormulaColumn( columnName, - { - value: layer.queryMinValue, - }, + { formula: layer.queryMinValue }, dataView, formulaAPI ); @@ -111,9 +101,7 @@ function buildFormulaLayer( const columnName = getAccessorName('max'); const formulaColumn = getFormulaColumn( columnName, - { - value: layer.queryMaxValue, - }, + { formula: layer.queryMaxValue }, dataView, formulaAPI ); diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/heatmap.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/heatmap.test.ts index cfcabb131b451..9c3c2fa2bdb6b 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/heatmap.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/heatmap.test.ts @@ -81,19 +81,16 @@ test('generates metric chart config', async () => { "test": Object {}, }, "datasourceStates": Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { "allColumns": Array [ Object { - "columnId": "metric_formula_accessor_y", + "columnId": "y_metric_formula_accessor", "fieldName": "category", }, Object { - "columnId": "metric_formula_accessor_x", + "columnId": "x_metric_formula_accessor", "fieldName": "@timestamp", }, Object { @@ -103,11 +100,11 @@ test('generates metric chart config', async () => { ], "columns": Array [ Object { - "columnId": "metric_formula_accessor_y", + "columnId": "y_metric_formula_accessor", "fieldName": "category", }, Object { - "columnId": "metric_formula_accessor_x", + "columnId": "x_metric_formula_accessor", "fieldName": "@timestamp", }, Object { @@ -147,8 +144,8 @@ test('generates metric chart config', async () => { }, "shape": "heatmap", "valueAccessor": "metric_formula_accessor", - "xAccessor": "metric_formula_accessor_x", - "yAccessor": "metric_formula_accessor_y", + "xAccessor": "x_metric_formula_accessor", + "yAccessor": "y_metric_formula_accessor", }, }, "title": "test", diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/heatmap.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/heatmap.ts index b06fecd6c37f6..73f1e04ceb047 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/heatmap.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/heatmap.ts @@ -18,13 +18,14 @@ import { buildDatasourceStates, buildReferences, getAdhocDataviews, + mapToFormula, } from '../utils'; import { getBreakdownColumn, getFormulaColumn, getValueColumn } from '../columns'; const ACCESSOR = 'metric_formula_accessor'; function getAccessorName(type: 'x' | 'y') { - return `${ACCESSOR}_${type}`; + return `${type}_${ACCESSOR}`; } function buildVisualizationState(config: LensHeatmapConfig): HeatmapVisualizationState { @@ -69,14 +70,7 @@ function buildFormulaLayer( formulaAPI: FormulaPublicApi ): FormBasedPersistedState['layers'][0] { const defaultLayer = { - ...getFormulaColumn( - ACCESSOR, - { - value: layer.value, - }, - dataView, - formulaAPI - ), + ...getFormulaColumn(ACCESSOR, mapToFormula(layer), dataView, formulaAPI), }; if (layer.xAxis) { diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/metric.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/metric.test.ts index cf82d3a2f5f4d..d549f5bfa1f1b 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/metric.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/metric.test.ts @@ -9,6 +9,10 @@ import type { DataView, DataViewField, DataViewsContract } from '@kbn/data-views-plugin/common'; import { buildMetric } from './metric'; +jest.mock('uuid', () => ({ + v4: jest.fn(() => '3feeaf26-927e-448e-968f-c7e970671564'), +})); + const dataViews: Record = { test: { id: 'test', @@ -79,9 +83,6 @@ test('generates metric chart config', async () => { "test": Object {}, }, "datasourceStates": Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { @@ -117,6 +118,195 @@ test('generates metric chart config', async () => { "layerType": "data", "metricAccessor": "metric_formula_accessor", "showBar": false, + "subtitle": undefined, + }, + }, + "title": "test", + "visualizationType": "lnsMetric", + } + `); +}); + +test('generates metric chart config with trendline', async () => { + const result = await buildMetric( + { + chartType: 'metric', + title: 'test', + dataset: { + index: 'data-view-id', + }, + value: 'count()', + trendLine: true, + }, + { + dataViewsAPI: mockDataViewsService() as any, + formulaAPI: { + insertOrReplaceFormulaColumn: jest.fn(() => ({ + columnOrder: ['formula_accessor_0_0X0', 'formula_accessor_0_0'], + columns: { + ['formula_accessor_0_0X0']: { + label: 'Part of count()', + dataType: 'number', + operationType: 'count', + isBucketed: false, + scale: 'ratio', + sourceField: '___records___', + params: { + emptyAsNull: false, + }, + customLabel: true, + }, + ['formula_accessor_0_0']: { + label: 'count()', + customLabel: true, + operationType: 'formula', + dataType: 'number', + references: ['formula_accessor_0_0X0'], + isBucketed: false, + timeScale: 's', + params: { + formula: 'count()', + format: { + id: 'number', + params: { + decimals: 0, + }, + }, + isFormulaBroken: false, + }, + }, + }, + })), + }, + } + ); + + expect(result).toMatchInlineSnapshot(` + Object { + "references": Array [ + Object { + "id": undefined, + "name": "indexpattern-datasource-layer-layer_0", + "type": "index-pattern", + }, + Object { + "id": undefined, + "name": "indexpattern-datasource-layer-layer_0_trendline", + "type": "index-pattern", + }, + ], + "state": Object { + "adHocDataViews": Object { + "3feeaf26-927e-448e-968f-c7e970671564": Object {}, + }, + "datasourceStates": Object { + "formBased": Object { + "layers": Object { + "layer_0": Object { + "columnOrder": Array [ + "formula_accessor_0_0X0", + "formula_accessor_0_0", + ], + "columns": Object { + "formula_accessor_0_0": Object { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "count()", + "operationType": "formula", + "params": Object { + "format": Object { + "id": "number", + "params": Object { + "decimals": 0, + }, + }, + "formula": "count()", + "isFormulaBroken": false, + }, + "references": Array [ + "formula_accessor_0_0X0", + ], + "timeScale": "s", + }, + "formula_accessor_0_0X0": Object { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Part of count()", + "operationType": "count", + "params": Object { + "emptyAsNull": false, + }, + "scale": "ratio", + "sourceField": "___records___", + }, + }, + }, + "layer_0_trendline": Object { + "columnOrder": Array [ + "formula_accessor_0_0X0", + "formula_accessor_0_0", + ], + "columns": Object { + "formula_accessor_0_0": Object { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "count()", + "operationType": "formula", + "params": Object { + "format": Object { + "id": "number", + "params": Object { + "decimals": 0, + }, + }, + "formula": "count()", + "isFormulaBroken": false, + }, + "references": Array [ + "formula_accessor_0_0X0", + ], + "timeScale": "s", + }, + "formula_accessor_0_0X0": Object { + "customLabel": true, + "dataType": "number", + "isBucketed": false, + "label": "Part of count()", + "operationType": "count", + "params": Object { + "emptyAsNull": false, + }, + "scale": "ratio", + "sourceField": "___records___", + }, + }, + "linkToLayers": Array [ + "layer_0", + ], + }, + }, + }, + }, + "filters": Array [], + "internalReferences": Array [], + "query": Object { + "language": "kuery", + "query": "", + }, + "visualization": Object { + "color": undefined, + "layerId": "layer_0", + "layerType": "data", + "metricAccessor": "metric_formula_accessor", + "showBar": false, + "subtitle": undefined, + "trendlineLayerId": "layer_0_trendline", + "trendlineLayerType": "metricTrendline", + "trendlineMetricAccessor": "metric_formula_accessor_trendline", + "trendlineTimeAccessor": "x_date_histogram", }, }, "title": "test", diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/metric.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/metric.ts index ab2bc68e6fafe..632f96557a27e 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/metric.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/metric.ts @@ -20,6 +20,7 @@ import { buildDatasourceStates, buildReferences, getAdhocDataviews, + mapToFormula, } from '../utils'; import { getBreakdownColumn, @@ -30,7 +31,7 @@ import { const ACCESSOR = 'metric_formula_accessor'; const HISTOGRAM_COLUMN_NAME = 'x_date_histogram'; -const TRENDLINE_LAYER_ID = `layer_trendline`; +const TRENDLINE_LAYER_ID = 'layer_0_trendline'; function getAccessorName(type: 'max' | 'breakdown' | 'secondary') { return `${ACCESSOR}_${type}`; @@ -43,7 +44,7 @@ function buildVisualizationState(config: LensMetricConfig): MetricVisualizationS layerType: 'data', metricAccessor: ACCESSOR, color: layer.seriesColor, - // subtitle: layer.subtitle, + subtitle: layer.subtitle, showBar: false, ...(layer.querySecondaryMetric @@ -98,7 +99,7 @@ function buildFormulaLayer( i: number, dataView: DataView, formulaAPI: FormulaPublicApi -): FormBasedPersistedState['layers'][0] { +): FormBasedPersistedState['layers'] { const baseLayer: PersistedIndexPatternLayer = { columnOrder: [ACCESSOR, HISTOGRAM_COLUMN_NAME], columns: { @@ -117,17 +118,10 @@ function buildFormulaLayer( const layers: { layer_0: PersistedIndexPatternLayer; - layer_trendline?: PersistedIndexPatternLayer; + layer_0_trendline?: PersistedIndexPatternLayer; } = { [DEFAULT_LAYER_ID]: { - ...getFormulaColumn( - ACCESSOR, - { - value: layer.value, - }, - dataView, - formulaAPI - ), + ...getFormulaColumn(ACCESSOR, mapToFormula(layer), dataView, formulaAPI), }, ...(layer.trendLine ? { @@ -135,7 +129,7 @@ function buildFormulaLayer( linkToLayers: [DEFAULT_LAYER_ID], ...getFormulaColumn( `${ACCESSOR}_trendline`, - { value: layer.value }, + mapToFormula(layer), dataView, formulaAPI, baseLayer @@ -165,9 +159,7 @@ function buildFormulaLayer( const columnName = getAccessorName('secondary'); const formulaColumn = getFormulaColumn( columnName, - { - value: layer.querySecondaryMetric, - }, + { formula: layer.querySecondaryMetric }, dataView, formulaAPI ); @@ -182,9 +174,7 @@ function buildFormulaLayer( const columnName = getAccessorName('max'); const formulaColumn = getFormulaColumn( columnName, - { - value: layer.queryMaxValue, - }, + { formula: layer.queryMaxValue }, dataView, formulaAPI ); @@ -195,7 +185,7 @@ function buildFormulaLayer( } } - return layers[DEFAULT_LAYER_ID]; + return layers; } function getValueColumns(layer: LensMetricConfig) { diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/partition.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/partition.test.ts index 22ee18f3e5f3e..120b3069552d8 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/partition.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/partition.test.ts @@ -80,9 +80,6 @@ test('generates metric chart config', async () => { "test": Object {}, }, "datasourceStates": Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/partition.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/partition.ts index a6c32db059f9b..8283d6e998551 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/partition.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/partition.ts @@ -26,6 +26,7 @@ import { buildDatasourceStates, buildReferences, getAdhocDataviews, + mapToFormula, } from '../utils'; import { getBreakdownColumn, getFormulaColumn, getValueColumn } from '../columns'; @@ -73,14 +74,7 @@ function buildFormulaLayer( ): FormBasedPersistedState['layers'][0] { const layers = { [DEFAULT_LAYER_ID]: { - ...getFormulaColumn( - ACCESSOR, - { - value: layer.value, - }, - dataView, - formulaAPI - ), + ...getFormulaColumn(ACCESSOR, mapToFormula(layer), dataView, formulaAPI), }, }; diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/region_map.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/region_map.test.ts index 0093b03e33bc3..dc1f37a393fd2 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/region_map.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/region_map.test.ts @@ -50,7 +50,7 @@ function mockDataViewsService() { } as unknown as Pick; } -test('generates metric chart config', async () => { +test('generates region map chart config', async () => { const result = await buildRegionMap( { chartType: 'regionmap', @@ -80,9 +80,6 @@ test('generates metric chart config', async () => { "test": Object {}, }, "datasourceStates": Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/region_map.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/region_map.ts index 2ed9e0dac9d8a..b2a48ab8c2a85 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/region_map.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/region_map.ts @@ -21,6 +21,7 @@ import { buildDatasourceStates, buildReferences, getAdhocDataviews, + mapToFormula, } from '../utils'; import { getBreakdownColumn, getFormulaColumn, getValueColumn } from '../columns'; @@ -54,14 +55,7 @@ function buildFormulaLayer( ): FormBasedPersistedState['layers'][0] { const layers = { [DEFAULT_LAYER_ID]: { - ...getFormulaColumn( - ACCESSOR, - { - value: layer.value, - }, - dataView, - formulaAPI - ), + ...getFormulaColumn(ACCESSOR, mapToFormula(layer), dataView, formulaAPI), }, }; diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/table.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/table.test.ts index 909f3e737ac99..90c07d4af46b7 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/table.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/table.test.ts @@ -50,7 +50,7 @@ function mockDataViewsService() { } as unknown as Pick; } -test('generates metric chart config', async () => { +test('generates table config', async () => { const result = await buildTable( { chartType: 'table', @@ -80,9 +80,6 @@ test('generates metric chart config', async () => { "test": Object {}, }, "datasourceStates": Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/table.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/table.ts index a14934dca57a0..e74230afbac2a 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/table.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/table.ts @@ -18,6 +18,7 @@ import { buildDatasourceStates, buildReferences, getAdhocDataviews, + mapToFormula, } from '../utils'; import { getBreakdownColumn, getFormulaColumn, getValueColumn } from '../columns'; @@ -45,14 +46,7 @@ function buildFormulaLayer( ): FormBasedPersistedState['layers'][0] { const layers = { [DEFAULT_LAYER_ID]: { - ...getFormulaColumn( - ACCESSOR, - { - value: layer.value, - }, - dataView, - formulaAPI - ), + ...getFormulaColumn(ACCESSOR, mapToFormula(layer), dataView, formulaAPI), }, }; diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/tag_cloud.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/tag_cloud.test.ts index 08885ba57ba83..d7db572bb286a 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/tag_cloud.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/tag_cloud.test.ts @@ -50,7 +50,7 @@ function mockDataViewsService() { } as unknown as Pick; } -test('generates metric chart config', async () => { +test('generates tag cloud chart config', async () => { const result = await buildTagCloud( { chartType: 'tagcloud', @@ -80,9 +80,6 @@ test('generates metric chart config', async () => { "test": Object {}, }, "datasourceStates": Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/tag_cloud.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/tag_cloud.ts index 31ea43af1dd6b..a986098aca5a9 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/tag_cloud.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/tag_cloud.ts @@ -19,6 +19,7 @@ import { buildReferences, getAdhocDataviews, isFormulaDataset, + mapToFormula, } from '../utils'; import { getBreakdownColumn, getFormulaColumn, getValueColumn } from '../columns'; @@ -31,6 +32,7 @@ function getAccessorName(type: 'breakdown') { function buildVisualizationState(config: LensTagCloudConfig): TagcloudState { const layer = config; const isFormula = isFormulaDataset(config.dataset) || isFormulaDataset(layer.dataset); + return { layerId: DEFAULT_LAYER_ID, valueAccessor: !isFormula ? layer.value : ACCESSOR, @@ -54,14 +56,7 @@ function buildFormulaLayer( ): FormBasedPersistedState['layers'][0] { const layers = { [DEFAULT_LAYER_ID]: { - ...getFormulaColumn( - ACCESSOR, - { - value: layer.value, - }, - dataView, - formulaAPI - ), + ...getFormulaColumn(ACCESSOR, mapToFormula(layer), dataView, formulaAPI), }, }; diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/xy.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/xy.test.ts index d1646b4c0ec7d..562c5b0948a48 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/xy.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/xy.test.ts @@ -50,7 +50,7 @@ function mockDataViewsService() { } as unknown as Pick; } -test('generates metric chart config', async () => { +test('generates xy chart config', async () => { const result = await buildXY( { chartType: 'xy', @@ -62,9 +62,13 @@ test('generates metric chart config', async () => { { type: 'series', seriesType: 'bar', - label: 'test', - value: 'count', xAxis: '@timestamp', + yAxis: [ + { + label: 'test', + value: 'count', + }, + ], }, ], }, @@ -73,6 +77,7 @@ test('generates metric chart config', async () => { formulaAPI: {} as any, } ); + expect(result).toMatchInlineSnapshot(` Object { "references": Array [ @@ -87,19 +92,16 @@ test('generates metric chart config', async () => { "test": Object {}, }, "datasourceStates": Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { "allColumns": Array [ Object { - "columnId": "metric_formula_accessor0_x", + "columnId": "x_metric_formula_accessor0", "fieldName": "@timestamp", }, Object { - "columnId": "metric_formula_accessor0", + "columnId": "metric_formula_accessor0_0", "fieldName": "count", "meta": Object { "type": "number", @@ -108,11 +110,11 @@ test('generates metric chart config', async () => { ], "columns": Array [ Object { - "columnId": "metric_formula_accessor0_x", + "columnId": "x_metric_formula_accessor0", "fieldName": "@timestamp", }, Object { - "columnId": "metric_formula_accessor0", + "columnId": "metric_formula_accessor0_0", "fieldName": "count", "meta": Object { "type": "number", @@ -139,12 +141,14 @@ test('generates metric chart config', async () => { "yLeft": true, "yRight": true, }, + "emphasizeFitting": false, "fittingFunction": "None", "gridlinesVisibilitySettings": Object { "x": true, "yLeft": true, "yRight": true, }, + "hideEndzones": true, "labelsOrientation": Object { "x": 0, "yLeft": 0, @@ -153,12 +157,12 @@ test('generates metric chart config', async () => { "layers": Array [ Object { "accessors": Array [ - "metric_formula_accessor0", + "metric_formula_accessor0_0", ], "layerId": "layer_0", "layerType": "data", "seriesType": "bar", - "xAccessor": "metric_formula_accessor0_x", + "xAccessor": "x_metric_formula_accessor0", }, ], "legend": Object { @@ -172,6 +176,11 @@ test('generates metric chart config', async () => { "yRight": true, }, "valueLabels": "hide", + "yLeftExtent": Object { + "lowerBound": undefined, + "mode": "full", + "upperBound": undefined, + }, }, }, "title": "test", diff --git a/packages/kbn-lens-embeddable-utils/config_builder/charts/xy.ts b/packages/kbn-lens-embeddable-utils/config_builder/charts/xy.ts index 1b9171d0f6d25..31b39c47b1b11 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/charts/xy.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/charts/xy.ts @@ -12,6 +12,7 @@ import type { XYState, XYReferenceLineLayerConfig, XYDataLayerConfig, + PersistedIndexPatternLayer, } from '@kbn/lens-plugin/public'; import type { DataView } from '@kbn/data-views-plugin/public'; import type { XYByValueAnnotationLayerConfig } from '@kbn/lens-plugin/public/visualizations/xy/types'; @@ -22,6 +23,7 @@ import { buildDatasourceStates, buildReferences, getAdhocDataviews, + mapToFormula, } from '../utils'; import { BuildDependencies, @@ -36,17 +38,24 @@ const ACCESSOR = 'metric_formula_accessor'; function buildVisualizationState(config: LensXYConfig): XYState { return { + axisTitlesVisibilitySettings: { + x: config.axisTitleVisibility?.showXAxisTitle ?? true, + yLeft: config.axisTitleVisibility?.showYAxisTitle ?? true, + yRight: true, + }, legend: { - isVisible: config.legend?.show || true, - position: config.legend?.position || 'left', + isVisible: config.legend?.show ?? true, + position: config.legend?.position ?? 'left', }, + hideEndzones: true, preferredSeriesType: 'line', valueLabels: 'hide', - fittingFunction: 'None', - axisTitlesVisibilitySettings: { - x: true, - yLeft: true, - yRight: true, + emphasizeFitting: config?.emphasizeFitting ?? false, + fittingFunction: config?.fittingFunction ?? 'None', + yLeftExtent: { + mode: config.yBounds?.mode ?? 'full', + lowerBound: config.yBounds?.lowerBound, + upperBound: config.yBounds?.upperBound, }, tickLabelsVisibilitySettings: { x: true, @@ -107,25 +116,24 @@ function buildVisualizationState(config: LensXYConfig): XYState { return { layerId: `layer_${i}`, layerType: 'referenceLine', - accessors: [`${ACCESSOR}${i}`], - yConfig: [ - { - forAccessor: `${ACCESSOR}${i}`, - axisMode: 'left', - }, - ], + accessors: layer.yAxis.map((_, index) => `${ACCESSOR}${i}_${index}`), + yConfig: layer.yAxis.map((yAxis, index) => ({ + forAccessor: `${ACCESSOR}${i}_${index}`, + axisMode: 'left', + color: yAxis.seriesColor, + })), } as XYReferenceLineLayerConfig; case 'series': return { layerId: `layer_${i}`, layerType: 'data', - xAccessor: `${ACCESSOR}${i}_x`, + xAccessor: `x_${ACCESSOR}${i}`, ...(layer.breakdown ? { - splitAccessor: `${ACCESSOR}${i}_y}`, + splitAccessor: `y_${ACCESSOR}${i}`, } : {}), - accessors: [`${ACCESSOR}${i}`], + accessors: layer.yAxis.map((_, index) => `${ACCESSOR}${i}_${index}`), seriesType: layer.seriesType || 'line', } as XYDataLayerConfig; } @@ -144,11 +152,31 @@ function getValueColumns(layer: LensSeriesLayer, i: number) { ...(layer.breakdown ? [getValueColumn(`${ACCESSOR}${i}_breakdown`, layer.breakdown as string)] : []), - getValueColumn(`${ACCESSOR}${i}_x`, layer.xAxis as string), - getValueColumn(`${ACCESSOR}${i}`, layer.value, 'number'), + getValueColumn(`x_${ACCESSOR}${i}`, layer.xAxis as string), + ...layer.yAxis.map((yAxis, index) => ({ + ...getValueColumn(`${ACCESSOR}${i}_${index}`, yAxis.value, 'number'), + })), ]; } +function buildAllFormulasInLayer( + layer: LensSeriesLayer | LensAnnotationLayer | LensReferenceLineLayer, + i: number, + dataView: DataView, + formulaAPI: FormulaPublicApi +): PersistedIndexPatternLayer { + return layer.yAxis.reduce((acc, curr, valueIndex) => { + const formulaColumn = getFormulaColumn( + `${ACCESSOR}${i}_${valueIndex}`, + mapToFormula(curr), + dataView, + formulaAPI, + valueIndex > 0 ? acc : undefined + ); + return { ...acc, ...formulaColumn }; + }, {} as PersistedIndexPatternLayer); +} + function buildFormulaLayer( layer: LensSeriesLayer | LensAnnotationLayer | LensReferenceLineLayer, i: number, @@ -156,19 +184,10 @@ function buildFormulaLayer( formulaAPI: FormulaPublicApi ): FormBasedPersistedState['layers'][0] { if (layer.type === 'series') { - const resultLayer = { - ...getFormulaColumn( - `${ACCESSOR}${i}`, - { - value: layer.value, - }, - dataView, - formulaAPI - ), - }; + const resultLayer = buildAllFormulasInLayer(layer, i, dataView, formulaAPI); if (layer.xAxis) { - const columnName = `${ACCESSOR}${i}_x`; + const columnName = `x_${ACCESSOR}${i}`; const breakdownColumn = getBreakdownColumn({ options: layer.xAxis, dataView, @@ -177,7 +196,7 @@ function buildFormulaLayer( } if (layer.breakdown) { - const columnName = `${ACCESSOR}${i}_y`; + const columnName = `y_${ACCESSOR}${i}`; const breakdownColumn = getBreakdownColumn({ options: layer.breakdown, dataView, @@ -189,16 +208,7 @@ function buildFormulaLayer( } else if (layer.type === 'annotation') { // nothing ? } else if (layer.type === 'reference') { - return { - ...getFormulaColumn( - `${ACCESSOR}${i}`, - { - value: layer.value, - }, - dataView, - formulaAPI - ), - }; + return buildAllFormulasInLayer(layer, i, dataView, formulaAPI); } return { diff --git a/packages/kbn-lens-embeddable-utils/config_builder/columns/date_histogram.ts b/packages/kbn-lens-embeddable-utils/config_builder/columns/date_histogram.ts index 59098f7e18f16..21e51f317da61 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/columns/date_histogram.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/columns/date_histogram.ts @@ -26,8 +26,7 @@ export const getHistogramColumn = ({ label: '@timestamp', operationType: 'date_histogram', scale: 'interval', - sourceField: '@timestamp', - ...options, + sourceField: options?.sourceField ?? '@timestamp', params: { interval, ...rest }, }; }; diff --git a/packages/kbn-lens-embeddable-utils/config_builder/columns/formula.ts b/packages/kbn-lens-embeddable-utils/config_builder/columns/formula.ts index 1a28bc917cb83..37c9c3343185b 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/columns/formula.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/columns/formula.ts @@ -8,13 +8,8 @@ import type { FormulaPublicApi, PersistedIndexPatternLayer } from '@kbn/lens-plugin/public'; import type { DataView } from '@kbn/data-views-plugin/public'; +import { FormulaValueConfig } from '../types'; -type LensFormula = Parameters[1]; - -export type FormulaValueConfig = Omit & { - color?: string; - value: string; -}; export function getFormulaColumn( id: string, config: FormulaValueConfig, @@ -22,10 +17,10 @@ export function getFormulaColumn( formulaAPI: FormulaPublicApi, baseLayer?: PersistedIndexPatternLayer ): PersistedIndexPatternLayer { - const { value, ...rest } = config; + const { formula, ...rest } = config; const formulaLayer = formulaAPI.insertOrReplaceFormulaColumn( id, - { formula: value, ...rest }, + { formula, ...rest }, baseLayer || { columnOrder: [], columns: {} }, dataView ); diff --git a/packages/kbn-lens-embeddable-utils/config_builder/types.ts b/packages/kbn-lens-embeddable-utils/config_builder/types.ts index c537ee5bfe23f..eaf35082f6426 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/types.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/types.ts @@ -62,14 +62,21 @@ export interface LensBaseConfig { export interface LensBaseLayer { label?: string; filter?: string; - format?: 'bytes' | 'currency' | 'duration' | 'number' | 'percent' | 'string'; + format?: 'bits' | 'bytes' | 'currency' | 'duration' | 'number' | 'percent' | 'string'; + decimals?: number; + normalizeByUnit?: 's' | 'm' | 'h' | 'd'; + compactValues?: boolean; randomSampling?: number; useGlobalFilter?: boolean; seriesColor?: string; - dataset?: LensDataset; value: LensLayerQuery; } +export interface LensBaseXYLayer { + dataset?: LensDataset; + yAxis: LensBaseLayer[]; +} + export type LensConfig = | LensMetricConfig | LensGaugeConfig @@ -91,6 +98,16 @@ export interface LensConfigOptions { query?: Query; } +export interface LensAxisTitleVisibilityConfig { + showXAxisTitle?: boolean; + showYAxisTitle?: boolean; +} + +export interface LensYBoundsConfig { + mode: 'full' | 'custom' | 'dataBounds'; + lowerBound?: number; + upperBound?: number; +} export interface LensLegendConfig { show?: boolean; position?: 'top' | 'left' | 'bottom' | 'right'; @@ -140,6 +157,7 @@ export interface LensMetricConfigBase { /** field name to apply breakdown based on field type or full breakdown configuration */ breakdown?: LensBreakdownConfig; trendLine?: boolean; + subtitle?: string; } export type LensMetricConfig = Identity; @@ -222,10 +240,10 @@ export interface LensReferenceLineLayerBase { lineThickness?: number; color?: string; fill?: 'none' | 'above' | 'below'; - value?: number; + value?: string; } -export type LensReferenceLineLayer = LensReferenceLineLayerBase & LensBaseLayer; +export type LensReferenceLineLayer = LensReferenceLineLayerBase & LensBaseXYLayer; export interface LensAnnotationLayerBaseProps { name: string; @@ -234,7 +252,7 @@ export interface LensAnnotationLayerBaseProps { } export type LensAnnotationLayer = Identity< - LensBaseLayer & { + LensBaseXYLayer & { type: 'annotation'; events: Array< | Identity< @@ -253,7 +271,7 @@ export type LensAnnotationLayer = Identity< >; export type LensSeriesLayer = Identity< - LensBaseLayer & { + LensBaseXYLayer & { type: 'series'; breakdown?: LensBreakdownConfig; xAxis: LensBreakdownConfig; @@ -265,6 +283,10 @@ export interface LensXYConfigBase { chartType: 'xy'; layers: Array; legend?: Identity; + axisTitleVisibility?: Identity; + emphasizeFitting?: boolean; + fittingFunction?: 'None' | 'Zero' | 'Linear' | 'Carry' | 'Lookahead' | 'Average' | 'Nearest'; + yBounds?: LensYBoundsConfig; } export interface BuildDependencies { dataViewsAPI: DataViewsPublicPluginStart; @@ -272,3 +294,27 @@ export interface BuildDependencies { } export type LensXYConfig = Identity; + +type LensFormula = Parameters[1]; + +export type FormulaValueConfig = LensFormula & { + color?: string; +}; + +interface ChartTypeLensMap { + gauge: LensGaugeConfig; + metric: LensMetricConfig; + pie: LensPieConfig; + donut: LensPieConfig; + treemap: LensTreeMapConfig; + tagcloud: LensTagCloudConfig; + regionmap: LensRegionMapConfig; + mosaic: LensMosaicConfig; + table: LensTableConfig; + heatmap: LensHeatmapConfig; + xy: LensXYConfig; +} + +export type ChartTypeLensConfig = T extends keyof ChartTypeLensMap + ? ChartTypeLensMap[T] + : never; diff --git a/packages/kbn-lens-embeddable-utils/config_builder/utils.test.ts b/packages/kbn-lens-embeddable-utils/config_builder/utils.test.ts index 7709c6969b29f..d7559b7121ae8 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/utils.test.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/utils.test.ts @@ -13,6 +13,7 @@ import { getDatasetIndex, addLayerColumn, isFormulaDataset, + mapToFormula, } from './utils'; import type { DataView } from '@kbn/data-views-plugin/common'; import type { @@ -185,8 +186,7 @@ describe('buildDatasourceStates', () => { dataset: { esql: 'from test | limit 10', }, - label: 'test', - value: 'test', + yAxis: [{ label: 'test', value: 'test' }], }, ], }, @@ -199,9 +199,6 @@ describe('buildDatasourceStates', () => { ); expect(results).toMatchInlineSnapshot(` Object { - "formBased": Object { - "layers": Object {}, - }, "textBased": Object { "layers": Object { "layer_0": Object { @@ -218,3 +215,41 @@ describe('buildDatasourceStates', () => { `); }); }); + +describe('mapToFormula', () => { + test('map LensBaseLayer to FormulaConfigValue', () => { + const formulaConfig = mapToFormula({ + label: 'iowait', + value: 'average(system.cpu.iowait.pct) / max(system.cpu.cores)', + }); + expect(formulaConfig).toMatchInlineSnapshot(` + Object { + "format": undefined, + "formula": "average(system.cpu.iowait.pct) / max(system.cpu.cores)", + "label": "iowait", + "timeScale": undefined, + } + `); + }); + test('map LensBaseLayer to FormulaConfigValue with format', () => { + const formulaConfig = mapToFormula({ + label: 'iowait', + value: 'average(system.cpu.iowait.pct) / max(system.cpu.cores)', + format: 'percent', + decimals: 1, + }); + expect(formulaConfig).toMatchInlineSnapshot(` + Object { + "format": Object { + "id": "percent", + "params": Object { + "decimals": 1, + }, + }, + "formula": "average(system.cpu.iowait.pct) / max(system.cpu.cores)", + "label": "iowait", + "timeScale": undefined, + } + `); + }); +}); diff --git a/packages/kbn-lens-embeddable-utils/config_builder/utils.ts b/packages/kbn-lens-embeddable-utils/config_builder/utils.ts index 21c48ca76a52b..44e3fdd31d2b4 100644 --- a/packages/kbn-lens-embeddable-utils/config_builder/utils.ts +++ b/packages/kbn-lens-embeddable-utils/config_builder/utils.ts @@ -14,6 +14,7 @@ import type { DataViewsPublicPluginStart, } from '@kbn/data-views-plugin/public'; import type { + FormBasedPersistedState, GenericIndexPatternColumn, PersistedIndexPatternLayer, } from '@kbn/lens-plugin/public'; @@ -23,15 +24,22 @@ import type { } from '@kbn/lens-plugin/public/datasources/text_based/types'; import { AggregateQuery, getIndexPatternFromESQLQuery } from '@kbn/es-query'; import { + FormulaValueConfig, LensAnnotationLayer, LensAttributes, LensBaseConfig, LensBaseLayer, + LensBaseXYLayer, LensDataset, LensDatatableDataset, LensESQLDataset, } from './types'; +type DataSourceStateLayer = + | FormBasedPersistedState['layers'] // metric chart can return 2 layers (one for the metric and one for the trendline) + | PersistedIndexPatternLayer + | TextBasedPersistedState['layers'][0]; + export const getDefaultReferences = ( index: string, dataLayerId: string @@ -45,6 +53,27 @@ export const getDefaultReferences = ( ]; }; +export function mapToFormula(layer: LensBaseLayer): FormulaValueConfig { + const { label, decimals, format, compactValues: compact, normalizeByUnit, value } = layer; + + const formulaFormat: FormulaValueConfig['format'] | undefined = format + ? { + id: format, + params: { + decimals: decimals ?? 2, + ...(!!compact ? { compact } : undefined), + }, + } + : undefined; + + return { + formula: value, + label, + timeScale: normalizeByUnit, + format: formulaFormat, + }; +} + export function buildReferences(dataviews: Record) { const references = []; for (const layerid in dataviews) { @@ -75,6 +104,12 @@ export const getAdhocDataviews = (dataviews: Record) => { return adHocDataViews; }; +export function isSingleLayer( + layer: DataSourceStateLayer +): layer is PersistedIndexPatternLayer | TextBasedPersistedState['layers'][0] { + return layer && typeof layer === 'object' && ('columnOrder' in layer || 'columns' in layer); +} + export function isFormulaDataset(dataset?: LensDataset) { if (dataset && 'index' in dataset) { return true; @@ -126,7 +161,7 @@ export function getDatasetIndex(dataset?: LensDataset) { } function buildDatasourceStatesLayer( - layer: LensBaseLayer, + layer: LensBaseLayer | LensBaseXYLayer, i: number, dataset: LensDataset, dataView: DataView | undefined, @@ -134,13 +169,12 @@ function buildDatasourceStatesLayer( config: unknown, i: number, dataView: DataView - ) => PersistedIndexPatternLayer | undefined, + ) => FormBasedPersistedState['layers'] | PersistedIndexPatternLayer | undefined, getValueColumns: (config: unknown, i: number) => TextBasedLayerColumn[] // ValueBasedLayerColumn[] -): [ - 'textBased' | 'formBased', - PersistedIndexPatternLayer | TextBasedPersistedState['layers'][0] | undefined -] { - function buildValueLayer(config: LensBaseLayer): TextBasedPersistedState['layers'][0] { +): ['textBased' | 'formBased', DataSourceStateLayer | undefined] { + function buildValueLayer( + config: LensBaseLayer | LensBaseXYLayer + ): TextBasedPersistedState['layers'][0] { const table = dataset as LensDatatableDataset; const newLayer = { table, @@ -160,7 +194,9 @@ function buildDatasourceStatesLayer( return newLayer; } - function buildESQLLayer(config: LensBaseLayer): TextBasedPersistedState['layers'][0] { + function buildESQLLayer( + config: LensBaseLayer | LensBaseXYLayer + ): TextBasedPersistedState['layers'][0] { const columns = getValueColumns(layer, i); const newLayer = { @@ -181,20 +217,17 @@ function buildDatasourceStatesLayer( return ['formBased', buildFormulaLayers(layer, i, dataView!)]; } export const buildDatasourceStates = async ( - config: (LensBaseConfig & { layers: LensBaseLayer[] }) | (LensBaseLayer & LensBaseConfig), + config: (LensBaseConfig & { layers: LensBaseXYLayer[] }) | (LensBaseLayer & LensBaseConfig), dataviews: Record, buildFormulaLayers: ( config: unknown, i: number, dataView: DataView - ) => PersistedIndexPatternLayer | undefined, + ) => PersistedIndexPatternLayer | FormBasedPersistedState['layers'] | undefined, getValueColumns: (config: any, i: number) => TextBasedLayerColumn[], dataViewsAPI: DataViewsPublicPluginStart ) => { - const layers: LensAttributes['state']['datasourceStates'] = { - textBased: { layers: {} }, - formBased: { layers: {} }, - }; + let layers: Partial = {}; const mainDataset = config.dataset; const configLayers = 'layers' in config ? config.layers : [config]; @@ -212,10 +245,6 @@ export const buildDatasourceStates = async ( ? await getDataView(index.index, dataViewsAPI, index.timeFieldName) : undefined; - if (dataView) { - dataviews[layerId] = dataView; - } - if (dataset) { const [type, layerConfig] = buildDatasourceStatesLayer( layer, @@ -226,13 +255,28 @@ export const buildDatasourceStates = async ( getValueColumns ); if (layerConfig) { - layers[type]!.layers[layerId] = layerConfig; + layers = { + ...layers, + [type]: { + layers: isSingleLayer(layerConfig) + ? { ...layers[type]?.layers, [layerId]: layerConfig } + : // metric chart can return 2 layers (one for the metric and one for the trendline) + { ...layerConfig }, + }, + }; + } + + if (dataView) { + Object.keys(layers[type]?.layers ?? []).forEach((id) => { + dataviews[id] = dataView; + }); } } } return layers; }; + export const addLayerColumn = ( layer: PersistedIndexPatternLayer, columnName: string, diff --git a/packages/kbn-managed-content-badge/README.md b/packages/kbn-managed-content-badge/README.md new file mode 100644 index 0000000000000..fca7826d80899 --- /dev/null +++ b/packages/kbn-managed-content-badge/README.md @@ -0,0 +1,3 @@ +# @kbn/managed-content-badge + +Empty package generated by @kbn/generate diff --git a/packages/kbn-managed-content-badge/index.ts b/packages/kbn-managed-content-badge/index.ts new file mode 100644 index 0000000000000..a548520c01237 --- /dev/null +++ b/packages/kbn-managed-content-badge/index.ts @@ -0,0 +1,28 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ +import { 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 +) => ({ + 'data-test-subj': 'managedContentBadge', + badgeText: i18n.translate('managedContentBadge.text', { + defaultMessage: 'Managed', + }), + title: i18n.translate('managedContentBadge.text', { + defaultMessage: 'Managed', + }), + color: 'primary', + iconType: 'glasses', + toolTipProps: { + content: tooltipText, + position: 'bottom', + } as EuiToolTipProps, +}); diff --git a/packages/kbn-managed-content-badge/jest.config.js b/packages/kbn-managed-content-badge/jest.config.js new file mode 100644 index 0000000000000..2e409a7e6b5ad --- /dev/null +++ b/packages/kbn-managed-content-badge/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-managed-content-badge'], +}; diff --git a/packages/kbn-managed-content-badge/kibana.jsonc b/packages/kbn-managed-content-badge/kibana.jsonc new file mode 100644 index 0000000000000..e679a5e83d36f --- /dev/null +++ b/packages/kbn-managed-content-badge/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-browser", + "id": "@kbn/managed-content-badge", + "owner": "@elastic/kibana-visualizations" +} diff --git a/packages/kbn-managed-content-badge/package.json b/packages/kbn-managed-content-badge/package.json new file mode 100644 index 0000000000000..41b11fa33fcac --- /dev/null +++ b/packages/kbn-managed-content-badge/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/managed-content-badge", + "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-managed-content-badge/tsconfig.json b/packages/kbn-managed-content-badge/tsconfig.json new file mode 100644 index 0000000000000..249cf05d36c96 --- /dev/null +++ b/packages/kbn-managed-content-badge/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node" + ] + }, + "include": [ + "**/*.ts", + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/i18n", + "@kbn/navigation-plugin", + ] +} diff --git a/packages/kbn-management/settings/application/__stories__/application.stories.tsx b/packages/kbn-management/settings/application/__stories__/application.stories.tsx index efc27f7f8300c..ced0c0dbcdef8 100644 --- a/packages/kbn-management/settings/application/__stories__/application.stories.tsx +++ b/packages/kbn-management/settings/application/__stories__/application.stories.tsx @@ -11,8 +11,12 @@ import type { ComponentMeta, Story } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { Subscription } from 'rxjs'; +import { + getGlobalSettingsMock, + getSettingsMock, +} from '@kbn/management-settings-utilities/mocks/settings.mock'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; import { SettingsApplication as Component } from '../application'; -import { useApplicationStory } from './use_application_story'; import { SettingsApplicationProvider } from '../services'; export default { @@ -25,30 +29,45 @@ export default { }, } as ComponentMeta; -export const SettingsApplication: Story = () => { - const { getAllowListedSettings } = useApplicationStory(); +/** + * Props for a {@link SettinggApplication} Storybook story. + */ +export interface StoryProps { + hasGlobalSettings: boolean; +} + +const getSettingsApplicationStory = ({ hasGlobalSettings }: StoryProps) => ( + + scope === 'namespace' ? getSettingsMock() : hasGlobalSettings ? getGlobalSettingsMock() : {} + } + isCustomSetting={() => false} + isOverriddenSetting={() => false} + saveChanges={action('saveChanges')} + showError={action('showError')} + showReloadPagePrompt={action('showReloadPagePrompt')} + subscribeToUpdates={() => new Subscription()} + addUrlToHistory={action('addUrlToHistory')} + validateChange={async (key, value) => { + action(`validateChange`)({ + key, + value, + }); + return { successfulValidation: true, valid: true }; + }} + > + + +); + +export const SettingsApplicationWithGlobalSettings: Story = () => + getSettingsApplicationStory({ + hasGlobalSettings: true, + }); - return ( - false} - isOverriddenSetting={() => false} - saveChanges={action('saveChanges')} - showError={action('showError')} - showReloadPagePrompt={action('showReloadPagePrompt')} - subscribeToUpdates={() => new Subscription()} - addUrlToHistory={action('addUrlToHistory')} - validateChange={async (key, value) => { - action(`validateChange`)({ - key, - value, - }); - return { successfulValidation: true, valid: true }; - }} - > - - - ); -}; +export const SettingsApplicationWithoutGlobal: Story = () => + getSettingsApplicationStory({ + hasGlobalSettings: false, + }); diff --git a/packages/kbn-management/settings/application/__stories__/use_application_story.tsx b/packages/kbn-management/settings/application/__stories__/use_application_story.tsx index 9f91b8af4978f..1992f9259e649 100644 --- a/packages/kbn-management/settings/application/__stories__/use_application_story.tsx +++ b/packages/kbn-management/settings/application/__stories__/use_application_story.tsx @@ -9,5 +9,5 @@ import { getSettingsMock } from '@kbn/management-settings-utilities/mocks/settings.mock'; export const useApplicationStory = () => { - return { getAllowListedSettings: getSettingsMock }; + return { getAllowlistedSettings: getSettingsMock }; }; diff --git a/packages/kbn-management/settings/application/application.test.tsx b/packages/kbn-management/settings/application/application.test.tsx index d8b32bc3bd7f8..1d439f627b81d 100644 --- a/packages/kbn-management/settings/application/application.test.tsx +++ b/packages/kbn-management/settings/application/application.test.tsx @@ -8,17 +8,24 @@ import React from 'react'; import { act, fireEvent, render, waitFor } from '@testing-library/react'; -import { SettingsApplication, DATA_TEST_SUBJ_SETTINGS_TITLE } from './application'; +import { + SettingsApplication, + DATA_TEST_SUBJ_SETTINGS_TITLE, + SPACE_SETTINGS_TAB_ID, + GLOBAL_SETTINGS_TAB_ID, +} from './application'; import { DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR } from './query_input'; import { DATA_TEST_SUBJ_SETTINGS_EMPTY_STATE, DATA_TEST_SUBJ_SETTINGS_CLEAR_SEARCH_LINK, } from './empty_state'; +import { DATA_TEST_SUBJ_PREFIX_TAB } from './tab'; import { DATA_TEST_SUBJ_SETTINGS_CATEGORY } from '@kbn/management-settings-components-field-category/category'; import { wrap, createSettingsApplicationServicesMock } from './mocks'; import { SettingsApplicationServices } from './services'; -const categories = ['general', 'dashboard', 'notifications']; +const spaceCategories = ['general', 'dashboard', 'notifications']; +const globalCategories = ['custom branding']; describe('Settings application', () => { beforeEach(() => { @@ -32,7 +39,7 @@ describe('Settings application', () => { expect(getByTestId(DATA_TEST_SUBJ_SETTINGS_TITLE)).toBeInTheDocument(); expect(getByTestId(DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR)).toBeInTheDocument(); // Verify that all category panels are rendered - for (const category of categories) { + for (const category of spaceCategories) { expect(getByTestId(`${DATA_TEST_SUBJ_SETTINGS_CATEGORY}-${category}`)).toBeInTheDocument(); } }); @@ -68,8 +75,61 @@ describe('Settings application', () => { fireEvent.click(clearSearchLink); }); - for (const category of categories) { + for (const category of spaceCategories) { expect(getByTestId(`${DATA_TEST_SUBJ_SETTINGS_CATEGORY}-${category}`)).toBeInTheDocument(); } }); + + describe('Tabs', () => { + const spaceSettingsTestSubj = `${DATA_TEST_SUBJ_PREFIX_TAB}-${SPACE_SETTINGS_TAB_ID}`; + const globalSettingsTestSubj = `${DATA_TEST_SUBJ_PREFIX_TAB}-${GLOBAL_SETTINGS_TAB_ID}`; + + it("doesn't render tabs when there are no global settings", () => { + const services: SettingsApplicationServices = createSettingsApplicationServicesMock(false); + + const { container, queryByTestId } = render(wrap(, services)); + + expect(container).toBeInTheDocument(); + expect(queryByTestId(spaceSettingsTestSubj)).toBeNull(); + expect(queryByTestId(globalSettingsTestSubj)).toBeNull(); + }); + + it('renders tabs when global settings are enabled', () => { + const services: SettingsApplicationServices = createSettingsApplicationServicesMock(true); + + const { container, getByTestId } = render(wrap(, services)); + + expect(container).toBeInTheDocument(); + expect(getByTestId(spaceSettingsTestSubj)).toBeInTheDocument(); + expect(getByTestId(globalSettingsTestSubj)).toBeInTheDocument(); + }); + + it('can switch between tabs', () => { + const services: SettingsApplicationServices = createSettingsApplicationServicesMock(true); + + const { getByTestId } = render(wrap(, services)); + + const spaceTab = getByTestId(spaceSettingsTestSubj); + const globalTab = getByTestId(globalSettingsTestSubj); + + // Initially the Space tab should be selected + expect(spaceTab.className).toContain('selected'); + expect(globalTab.className).not.toContain('selected'); + + act(() => { + fireEvent.click(globalTab); + }); + + expect(spaceTab.className).not.toContain('selected'); + expect(globalTab.className).toContain('selected'); + + // Should render the page correctly with the Global tab selected + expect(getByTestId(DATA_TEST_SUBJ_SETTINGS_TITLE)).toBeInTheDocument(); + expect(getByTestId(DATA_TEST_SUBJ_SETTINGS_SEARCH_BAR)).toBeInTheDocument(); + // Verify that all category panels are rendered + for (const category of globalCategories) { + expect(getByTestId(`${DATA_TEST_SUBJ_SETTINGS_CATEGORY}-${category}`)).toBeInTheDocument(); + } + }); + }); }); diff --git a/packages/kbn-management/settings/application/application.tsx b/packages/kbn-management/settings/application/application.tsx index 1b79f07be628d..e877bae184ec1 100644 --- a/packages/kbn-management/settings/application/application.tsx +++ b/packages/kbn-management/settings/application/application.tsx @@ -7,22 +7,28 @@ */ import React, { useState } from 'react'; -import { EuiText, EuiSpacer, EuiFlexGroup, EuiFlexItem, Query } from '@elastic/eui'; -import { i18n as i18nLib } from '@kbn/i18n'; - +import { + EuiText, + EuiSpacer, + EuiFlexGroup, + EuiFlexItem, + Query, + EuiTabs, + EuiCallOut, +} from '@elastic/eui'; +import { getCategoryCounts } from '@kbn/management-settings-utilities'; import { Form } from '@kbn/management-settings-components-form'; -import { categorizeFields } from '@kbn/management-settings-utilities'; - -import { useFields } from './hooks/use_fields'; -import { QueryInput, QueryInputProps } from './query_input'; +import { SettingsTabs } from '@kbn/management-settings-types/tab'; import { EmptyState } from './empty_state'; +import { i18nTexts } from './i18n_texts'; +import { Tab } from './tab'; +import { useScopeFields } from './hooks/use_scope_fields'; +import { QueryInput, QueryInputProps } from './query_input'; import { useServices } from './services'; -const title = i18nLib.translate('management.settings.advancedSettingsLabel', { - defaultMessage: 'Advanced Settings', -}); - export const DATA_TEST_SUBJ_SETTINGS_TITLE = 'managementSettingsTitle'; +export const SPACE_SETTINGS_TAB_ID = 'space-settings'; +export const GLOBAL_SETTINGS_TAB_ID = 'global-settings'; function addQueryParam(url: string, param: string, value: string) { const urlObj = new URL(url); @@ -52,9 +58,6 @@ export const SettingsApplication = () => { const queryParam = getQueryParam(window.location.href); const [query, setQuery] = useState(Query.parse(queryParam)); - const allFields = useFields(); - const filteredFields = useFields(query); - const onQueryChange: QueryInputProps['onQueryChange'] = (newQuery = Query.parse('')) => { setQuery(newQuery); @@ -62,32 +65,77 @@ export const SettingsApplication = () => { addUrlToHistory(search); }; - const categorizedFields = categorizeFields(allFields); - const categories = Object.keys(categorizedFields); - const categoryCounts: { [category: string]: number } = {}; - for (const category of categories) { - categoryCounts[category] = categorizedFields[category].count; + const [spaceAllFields, globalAllFields] = useScopeFields(); + const [spaceFilteredFields, globalFilteredFields] = useScopeFields(query); + + const globalSettingsEnabled = globalAllFields.length > 0; + + const tabs: SettingsTabs = { + [SPACE_SETTINGS_TAB_ID]: { + name: i18nTexts.spaceTabTitle, + fields: spaceFilteredFields, + categoryCounts: getCategoryCounts(spaceAllFields), + callOutTitle: i18nTexts.spaceCalloutTitle, + callOutText: i18nTexts.spaceCalloutText, + }, + }; + // Only add a Global settings tab if there are any global settings + if (globalSettingsEnabled) { + tabs[GLOBAL_SETTINGS_TAB_ID] = { + name: i18nTexts.globalTabTitle, + fields: globalFilteredFields, + categoryCounts: getCategoryCounts(globalAllFields), + callOutTitle: i18nTexts.globalCalloutTitle, + callOutText: i18nTexts.globalCalloutText, + }; } + const [selectedTabId, setSelectedTabId] = useState(SPACE_SETTINGS_TAB_ID); + const selectedTab = tabs[selectedTabId]; + return (
-

{title}

+

+ {i18nTexts.advancedSettingsTitle} +

- +
- - {filteredFields.length ? ( + + {globalSettingsEnabled && ( + <> + + {Object.keys(tabs).map((id) => ( + setSelectedTabId(id)} + isSelected={id === selectedTabId} + /> + ))} + + + +

{selectedTab.callOutText}

+
+ + )} + + {selectedTab.fields.length ? (
onQueryChange()} + scope={selectedTabId === SPACE_SETTINGS_TAB_ID ? 'namespace' : 'global'} /> ) : ( onQueryChange() }} /> diff --git a/packages/kbn-management/settings/application/hooks/index.ts b/packages/kbn-management/settings/application/hooks/index.ts index 2b8e1b6ad1026..e5a6d93fd44eb 100644 --- a/packages/kbn-management/settings/application/hooks/index.ts +++ b/packages/kbn-management/settings/application/hooks/index.ts @@ -8,3 +8,4 @@ export { useFields } from './use_fields'; export { useSettings } from './use_settings'; +export { useScopeFields } from './use_scope_fields'; diff --git a/packages/kbn-management/settings/application/hooks/use_fields.ts b/packages/kbn-management/settings/application/hooks/use_fields.ts index de8a7d0bd00cb..c1581000a7707 100644 --- a/packages/kbn-management/settings/application/hooks/use_fields.ts +++ b/packages/kbn-management/settings/application/hooks/use_fields.ts @@ -9,19 +9,24 @@ import { Query } from '@elastic/eui'; import { getFieldDefinitions } from '@kbn/management-settings-field-definition'; import { FieldDefinition } from '@kbn/management-settings-types'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; import { useServices } from '../services'; import { useSettings } from './use_settings'; /** * React hook which retrieves settings and returns an observed collection of * {@link FieldDefinition} objects derived from those settings. + * @param scope The {@link UiSettingsScope} of the settings to be retrieved. * @param query The {@link Query} to execute for filtering the fields. * @returns An array of {@link FieldDefinition} objects. */ -export const useFields = (query?: Query): FieldDefinition[] => { - const { isCustomSetting: isCustom, isOverriddenSetting: isOverridden } = useServices(); - const settings = useSettings(); - const fields = getFieldDefinitions(settings, { isCustom, isOverridden }); +export const useFields = (scope: UiSettingsScope, query?: Query): FieldDefinition[] => { + const { isCustomSetting, isOverriddenSetting } = useServices(); + const settings = useSettings(scope); + const fields = getFieldDefinitions(settings, { + isCustom: (key) => isCustomSetting(key, scope), + isOverridden: (key) => isOverriddenSetting(key, scope), + }); if (query) { return Query.execute(query, fields); } diff --git a/packages/kbn-management/settings/application/hooks/use_scope_fields.ts b/packages/kbn-management/settings/application/hooks/use_scope_fields.ts new file mode 100644 index 0000000000000..acb6e628b3c76 --- /dev/null +++ b/packages/kbn-management/settings/application/hooks/use_scope_fields.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 { Query } from '@elastic/eui'; +import { FieldDefinition } from '@kbn/management-settings-types'; +import { useFields } from './use_fields'; + +/** + * React hook which retrieves the fields for each scope (`namespace` and `global`) + * and returns two collections of {@link FieldDefinition} objects. + * @param query The {@link Query} to execute for filtering the fields. + * @returns Two arrays of {@link FieldDefinition} objects. + */ +export const useScopeFields = (query?: Query): [FieldDefinition[], FieldDefinition[]] => { + const spaceFields = useFields('namespace', query); + const globalFields = useFields('global', query); + return [spaceFields, globalFields]; +}; diff --git a/packages/kbn-management/settings/application/hooks/use_settings.ts b/packages/kbn-management/settings/application/hooks/use_settings.ts index e00cbad9ebaf7..ee27c5b960b52 100644 --- a/packages/kbn-management/settings/application/hooks/use_settings.ts +++ b/packages/kbn-management/settings/application/hooks/use_settings.ts @@ -9,22 +9,25 @@ import { useState } from 'react'; import useEffectOnce from 'react-use/lib/useEffectOnce'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; import { useServices } from '../services'; /** * React hook which retrieves settings from a particular {@link IUiSettingsClient}, * normalizes them to a predictable format, {@link UiSettingMetadata}, and returns * them as an observed collection. + * @param scope The {@link UiSettingsScope} of the settings to be retrieved. + * @returns An array of settings metadata objects. */ -export const useSettings = () => { +export const useSettings = (scope: UiSettingsScope) => { const { getAllowlistedSettings, subscribeToUpdates } = useServices(); - const [settings, setSettings] = useState(getAllowlistedSettings()); + const [settings, setSettings] = useState(getAllowlistedSettings(scope)); useEffectOnce(() => { const subscription = subscribeToUpdates(() => { - setSettings(getAllowlistedSettings()); - }); + setSettings(getAllowlistedSettings(scope)); + }, scope); return () => { subscription.unsubscribe(); diff --git a/packages/kbn-management/settings/application/i18n_texts.ts b/packages/kbn-management/settings/application/i18n_texts.ts new file mode 100644 index 0000000000000..a1febe23f3cf4 --- /dev/null +++ b/packages/kbn-management/settings/application/i18n_texts.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 { i18n } from '@kbn/i18n'; + +export const i18nTexts = { + advancedSettingsTitle: i18n.translate('management.settings.advancedSettingsLabel', { + defaultMessage: 'Advanced Settings', + }), + spaceTabTitle: i18n.translate('management.settings.spaceSettingsTabTitle', { + defaultMessage: 'Space Settings', + }), + spaceCalloutTitle: i18n.translate('management.settings.spaceCalloutTitle', { + defaultMessage: 'Changes will affect the current space.', + }), + spaceCalloutText: i18n.translate('management.settings.spaceCalloutSubtitle', { + defaultMessage: + 'Changes will only be applied to the current space. These settings are intended for advanced users, as improper configurations may adversely affect aspects of Kibana.', + }), + globalTabTitle: i18n.translate('management.settings.globalSettingsTabTitle', { + defaultMessage: 'Global Settings', + }), + globalCalloutTitle: i18n.translate('management.settings.globalCalloutTitle', { + defaultMessage: 'Changes will affect all user settings across all spaces', + }), + globalCalloutText: i18n.translate('management.settings.globalCalloutSubtitle', { + defaultMessage: + 'Changes will be applied to all users across all spaces. This includes both native Kibana users and single-sign on users.', + }), +}; diff --git a/packages/kbn-management/settings/application/mocks/context.tsx b/packages/kbn-management/settings/application/mocks/context.tsx index ac6625f25086d..85f5d1ba1ada4 100644 --- a/packages/kbn-management/settings/application/mocks/context.tsx +++ b/packages/kbn-management/settings/application/mocks/context.tsx @@ -16,7 +16,11 @@ import { I18nStart } from '@kbn/core-i18n-browser'; import { createFormServicesMock } from '@kbn/management-settings-components-form/mocks'; import { Subscription } from 'rxjs'; -import { getSettingsMock } from '@kbn/management-settings-utilities/mocks/settings.mock'; +import { + getGlobalSettingsMock, + getSettingsMock, +} from '@kbn/management-settings-utilities/mocks/settings.mock'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; import { SettingsApplicationProvider, SettingsApplicationServices } from '../services'; const createRootMock = () => { @@ -32,9 +36,12 @@ const createRootMock = () => { }; }; -export const createSettingsApplicationServicesMock = (): SettingsApplicationServices => ({ +export const createSettingsApplicationServicesMock = ( + hasGlobalSettings?: boolean +): SettingsApplicationServices => ({ ...createFormServicesMock(), - getAllowlistedSettings: () => getSettingsMock(), + getAllowlistedSettings: (scope: UiSettingsScope) => + scope === 'namespace' ? getSettingsMock() : hasGlobalSettings ? getGlobalSettingsMock() : {}, isCustomSetting: () => false, isOverriddenSetting: () => false, subscribeToUpdates: () => new Subscription(), diff --git a/packages/kbn-management/settings/application/services.tsx b/packages/kbn-management/settings/application/services.tsx index d64657525d351..c963e6bcbe8ac 100644 --- a/packages/kbn-management/settings/application/services.tsx +++ b/packages/kbn-management/settings/application/services.tsx @@ -19,12 +19,13 @@ import { IUiSettingsClient } from '@kbn/core-ui-settings-browser'; import { normalizeSettings } from '@kbn/management-settings-utilities'; import { Subscription } from 'rxjs'; import { ScopedHistory } from '@kbn/core-application-browser'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; export interface Services { - getAllowlistedSettings: () => Record; - subscribeToUpdates: (fn: () => void) => Subscription; - isCustomSetting: (key: string) => boolean; - isOverriddenSetting: (key: string) => boolean; + getAllowlistedSettings: (scope: UiSettingsScope) => Record; + subscribeToUpdates: (fn: () => void, scope: UiSettingsScope) => Subscription; + isCustomSetting: (key: string, scope: UiSettingsScope) => boolean; + isOverriddenSetting: (key: string, scope: UiSettingsScope) => boolean; addUrlToHistory: (url: string) => void; } @@ -36,6 +37,10 @@ export interface KibanaDependencies { IUiSettingsClient, 'getAll' | 'isCustom' | 'isOverridden' | 'getUpdate$' | 'validateValue' >; + globalClient: Pick< + IUiSettingsClient, + 'getAll' | 'isCustom' | 'isOverridden' | 'getUpdate$' | 'validateValue' + >; }; history: ScopedHistory; } @@ -93,23 +98,42 @@ export const SettingsApplicationKibanaProvider: FC { const { docLinks, notifications, theme, i18n, settings, history } = dependencies; - const { client } = settings; + const { client, globalClient } = settings; + + const getScopeClient = (scope: UiSettingsScope) => { + return scope === 'namespace' ? client : globalClient; + }; - const getAllowlistedSettings = () => { + const getAllowlistedSettings = (scope: UiSettingsScope) => { + const scopeClient = getScopeClient(scope); const rawSettings = Object.fromEntries( - Object.entries(client.getAll()).filter( + Object.entries(scopeClient.getAll()).filter( ([settingId, settingDef]) => !settingDef.readonly && !client.isCustom(settingId) ) ); - return normalizeSettings(rawSettings); }; + const isCustomSetting = (key: string, scope: UiSettingsScope) => { + const scopeClient = getScopeClient(scope); + return scopeClient.isCustom(key); + }; + + const isOverriddenSetting = (key: string, scope: UiSettingsScope) => { + const scopeClient = getScopeClient(scope); + return scopeClient.isOverridden(key); + }; + + const subscribeToUpdates = (fn: () => void, scope: UiSettingsScope) => { + const scopeClient = getScopeClient(scope); + return scopeClient.getUpdate$().subscribe(fn); + }; + const services: Services = { getAllowlistedSettings, - isCustomSetting: (key: string) => client.isCustom(key), - isOverriddenSetting: (key: string) => client.isOverridden(key), - subscribeToUpdates: (fn: () => void) => client.getUpdate$().subscribe(fn), + isCustomSetting, + isOverriddenSetting, + subscribeToUpdates, addUrlToHistory: (url: string) => history.push({ pathname: '', search: url }), }; diff --git a/packages/kbn-management/settings/application/tab.tsx b/packages/kbn-management/settings/application/tab.tsx new file mode 100644 index 0000000000000..6a234065d9e56 --- /dev/null +++ b/packages/kbn-management/settings/application/tab.tsx @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { EuiTab } from '@elastic/eui'; + +export const DATA_TEST_SUBJ_PREFIX_TAB = 'settings-tab'; + +/** + * Props for a {@link Tab} component. + */ +export interface TabProps { + /** The id of the tab. Used by parent component for differentiating between tabs. */ + id: string; + /** The name of the tab. */ + name: string; + /** The `onClick` handler for the tab. */ + onChangeSelectedTab: () => void; + /** True if the tab is selected, false otherwise. */ + isSelected: boolean; +} + +/** + * Component for rendering a settings tab. + */ +export const Tab = ({ id, name, onChangeSelectedTab, isSelected }: TabProps) => { + return ( + onChangeSelectedTab()} + isSelected={isSelected} + > + {name} + + ); +}; diff --git a/packages/kbn-management/settings/application/tsconfig.json b/packages/kbn-management/settings/application/tsconfig.json index 5c5323277a93f..cc1e11c585774 100644 --- a/packages/kbn-management/settings/application/tsconfig.json +++ b/packages/kbn-management/settings/application/tsconfig.json @@ -31,5 +31,6 @@ "@kbn/core-theme-browser-mocks", "@kbn/core-i18n-browser", "@kbn/core-analytics-browser-mocks", + "@kbn/core-ui-settings-common", ] } diff --git a/packages/kbn-management/settings/components/field_category/categories.tsx b/packages/kbn-management/settings/components/field_category/categories.tsx index 4b710d2c0a57c..6211d9467ca23 100644 --- a/packages/kbn-management/settings/components/field_category/categories.tsx +++ b/packages/kbn-management/settings/components/field_category/categories.tsx @@ -8,7 +8,11 @@ import React from 'react'; -import { CategorizedFields, UnsavedFieldChanges } from '@kbn/management-settings-types'; +import { + CategorizedFields, + UnsavedFieldChanges, + CategoryCounts, +} from '@kbn/management-settings-types'; import { FieldRow, FieldRowProps } from '@kbn/management-settings-components-field-row'; import { FieldCategory, type FieldCategoryProps } from './category'; @@ -21,7 +25,7 @@ export interface FieldCategoriesProps Pick { /** Categorized fields for display. */ categorizedFields: CategorizedFields; - categoryCounts: { [category: string]: number }; + categoryCounts: CategoryCounts; /** And unsaved changes currently managed by the parent component. */ unsavedChanges?: UnsavedFieldChanges; } diff --git a/packages/kbn-management/settings/components/field_input/code_editor.tsx b/packages/kbn-management/settings/components/field_input/code_editor.tsx index 3f46778917fdd..ac1ea672d8a15 100644 --- a/packages/kbn-management/settings/components/field_input/code_editor.tsx +++ b/packages/kbn-management/settings/components/field_input/code_editor.tsx @@ -15,11 +15,12 @@ import React, { useCallback } from 'react'; import { monaco, XJsonLang } from '@kbn/monaco'; + import { CodeEditor as KibanaReactCodeEditor, - MarkdownLang, type CodeEditorProps as KibanaReactCodeEditorProps, -} from '@kbn/kibana-react-plugin/public'; + MarkdownLang, +} from '@kbn/code-editor'; type Props = Pick; type Options = KibanaReactCodeEditorProps['options']; diff --git a/packages/kbn-management/settings/components/field_input/tsconfig.json b/packages/kbn-management/settings/components/field_input/tsconfig.json index bb4c6b4aa57d0..d971549abb2d4 100644 --- a/packages/kbn-management/settings/components/field_input/tsconfig.json +++ b/packages/kbn-management/settings/components/field_input/tsconfig.json @@ -19,7 +19,6 @@ "@kbn/management-settings-types", "@kbn/management-settings-field-definition", "@kbn/monaco", - "@kbn/kibana-react-plugin", "@kbn/management-settings-utilities", "@kbn/i18n-react", "@kbn/i18n", @@ -30,5 +29,6 @@ "@kbn/core-i18n-browser", "@kbn/core-analytics-browser-mocks", "@kbn/core-ui-settings-browser", + "@kbn/code-editor", ] } diff --git a/packages/kbn-management/settings/components/form/bottom_bar/bottom_bar.test.tsx b/packages/kbn-management/settings/components/form/bottom_bar/bottom_bar.test.tsx index ddb3502bb2009..ff5260ce3c6f4 100644 --- a/packages/kbn-management/settings/components/form/bottom_bar/bottom_bar.test.tsx +++ b/packages/kbn-management/settings/components/form/bottom_bar/bottom_bar.test.tsx @@ -26,6 +26,7 @@ const defaultProps: BottomBarProps = { hasInvalidChanges: false, unsavedChangesCount, isLoading: false, + hiddenChangesCount: 0, }; const unsavedChangesCountText = unsavedChangesCount + ' unsaved settings'; diff --git a/packages/kbn-management/settings/components/form/bottom_bar/bottom_bar.tsx b/packages/kbn-management/settings/components/form/bottom_bar/bottom_bar.tsx index 714b33cbca3ac..428ddb3a7d457 100644 --- a/packages/kbn-management/settings/components/form/bottom_bar/bottom_bar.tsx +++ b/packages/kbn-management/settings/components/form/bottom_bar/bottom_bar.tsx @@ -32,6 +32,7 @@ export interface BottomBarProps { hasInvalidChanges: boolean; isLoading: boolean; unsavedChangesCount: number; + hiddenChangesCount: number; } /** @@ -43,6 +44,7 @@ export const BottomBar = ({ hasInvalidChanges, isLoading, unsavedChangesCount, + hiddenChangesCount, }: BottomBarProps) => { const { cssFormButton, cssFormUnsavedCount } = useFormStyles(); @@ -55,7 +57,7 @@ export const BottomBar = ({ gutterSize="s" > - + diff --git a/packages/kbn-management/settings/components/form/bottom_bar/unsaved_count.tsx b/packages/kbn-management/settings/components/form/bottom_bar/unsaved_count.tsx index c21bb05ea7cc3..4a17fb2aa4f9e 100644 --- a/packages/kbn-management/settings/components/form/bottom_bar/unsaved_count.tsx +++ b/packages/kbn-management/settings/components/form/bottom_bar/unsaved_count.tsx @@ -17,12 +17,13 @@ import { useFormStyles } from '../form.styles'; */ interface UnsavedCountProps { unsavedCount: number; + hiddenCount: number; } /** * Component for displaying the count of unsaved changes in a {@link BottomBar}. */ -export const UnsavedCount = ({ unsavedCount }: UnsavedCountProps) => { +export const UnsavedCount = ({ unsavedCount, hiddenCount }: UnsavedCountProps) => { const { cssFormUnsavedCountMessage } = useFormStyles(); return ( @@ -31,9 +32,13 @@ export const UnsavedCount = ({ unsavedCount }: UnsavedCountProps) => { defaultMessage="{unsavedCount} unsaved {unsavedCount, plural, one {setting} other {settings} + }{hiddenCount, plural, + =0 {} + other {, # hidden} }" values={{ unsavedCount, + hiddenCount, }} /> diff --git a/packages/kbn-management/settings/components/form/form.test.tsx b/packages/kbn-management/settings/components/form/form.test.tsx index 6fbaeb7b88e31..3ad1db2e6f13d 100644 --- a/packages/kbn-management/settings/components/form/form.test.tsx +++ b/packages/kbn-management/settings/components/form/form.test.tsx @@ -14,7 +14,7 @@ import { getFieldDefinitions } from '@kbn/management-settings-field-definition'; import { getSettingsMock } from '@kbn/management-settings-utilities/mocks/settings.mock'; import { TEST_SUBJ_PREFIX_FIELD } from '@kbn/management-settings-components-field-input/input'; -import { Form } from './form'; +import { Form, FormProps } from './form'; import { wrap, createFormServicesMock, uiSettingsClientMock } from './mocks'; import { DATA_TEST_SUBJ_SAVE_BUTTON, DATA_TEST_SUBJ_CANCEL_BUTTON } from './bottom_bar/bottom_bar'; import { FormServices } from './types'; @@ -24,22 +24,35 @@ const fields: FieldDefinition[] = getFieldDefinitions(settingsMock, uiSettingsCl const categoryCounts = {}; const onClearQuery = jest.fn(); +const defaultFormParams: FormProps = { + fields, + isSavingEnabled: true, + categoryCounts, + onClearQuery, + scope: 'namespace', +}; + describe('Form', () => { beforeEach(() => { jest.clearAllMocks(); }); it('renders without errors', () => { - const { container } = render( - wrap() - ); + const { container } = render(wrap()); expect(container).toBeInTheDocument(); }); it('renders as read only if saving is disabled', () => { const { getByTestId } = render( - wrap() + wrap( + + ) ); (Object.keys(settingsMock) as SettingType[]).forEach((type) => { @@ -58,9 +71,7 @@ describe('Form', () => { }); it('renders bottom bar when a field is changed', () => { - const { getByTestId, queryByTestId } = render( - wrap() - ); + const { getByTestId, queryByTestId } = render(wrap()); expect(queryByTestId(DATA_TEST_SUBJ_SAVE_BUTTON)).not.toBeInTheDocument(); expect(queryByTestId(DATA_TEST_SUBJ_CANCEL_BUTTON)).not.toBeInTheDocument(); @@ -75,9 +86,7 @@ describe('Form', () => { it('fires saveChanges when Save button is clicked', async () => { const services: FormServices = createFormServicesMock(); - const { getByTestId } = render( - wrap(, services) - ); + const { getByTestId } = render(wrap(, services)); const testFieldType = 'string'; const input = getByTestId(`${TEST_SUBJ_PREFIX_FIELD}-${testFieldType}`); @@ -89,16 +98,17 @@ describe('Form', () => { }); await waitFor(() => { - expect(services.saveChanges).toHaveBeenCalledWith({ - string: { type: 'string', unsavedValue: 'test' }, - }); + expect(services.saveChanges).toHaveBeenCalledWith( + { + string: { type: 'string', unsavedValue: 'test' }, + }, + 'namespace' + ); }); }); it('clears changes when Cancel button is clicked', async () => { - const { getByTestId } = render( - wrap() - ); + const { getByTestId } = render(wrap()); const testFieldType = 'string'; const input = getByTestId(`${TEST_SUBJ_PREFIX_FIELD}-${testFieldType}`); @@ -121,12 +131,7 @@ describe('Form', () => { }); const testServices = { ...services, saveChanges: saveChangesWithError }; - const { getByTestId } = render( - wrap( - , - testServices - ) - ); + const { getByTestId } = render(wrap(, testServices)); const testFieldType = 'string'; const input = getByTestId(`${TEST_SUBJ_PREFIX_FIELD}-${testFieldType}`); @@ -157,6 +162,7 @@ describe('Form', () => { isSavingEnabled: false, categoryCounts, onClearQuery, + scope: 'namespace', }} />, services diff --git a/packages/kbn-management/settings/components/form/form.tsx b/packages/kbn-management/settings/components/form/form.tsx index 261813aa8cd58..cb662ce1e441c 100644 --- a/packages/kbn-management/settings/components/form/form.tsx +++ b/packages/kbn-management/settings/components/form/form.tsx @@ -8,11 +8,12 @@ import React, { Fragment } from 'react'; -import type { FieldDefinition } from '@kbn/management-settings-types'; +import type { FieldDefinition, CategoryCounts } from '@kbn/management-settings-types'; import { FieldCategories } from '@kbn/management-settings-components-field-category'; import { UnsavedFieldChange, OnFieldChangeFn } from '@kbn/management-settings-types'; import { isEmpty } from 'lodash'; import { categorizeFields } from '@kbn/management-settings-utilities'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; import { BottomBar } from './bottom_bar'; import { useSave } from './use_save'; @@ -25,9 +26,11 @@ export interface FormProps { /** True if saving settings is enabled, false otherwise. */ isSavingEnabled: boolean; /** Contains the number of registered settings in each category. */ - categoryCounts: { [category: string]: number }; + categoryCounts: CategoryCounts; /** Handler for the "clear search" link. */ onClearQuery: () => void; + /** {@link UiSettingsScope} of the settings in this form. */ + scope: UiSettingsScope; } /** @@ -35,7 +38,7 @@ export interface FormProps { * @param props The {@link FormProps} for the {@link Form} component. */ export const Form = (props: FormProps) => { - const { fields, isSavingEnabled, categoryCounts, onClearQuery } = props; + const { fields, isSavingEnabled, categoryCounts, onClearQuery, scope } = props; const [unsavedChanges, setUnsavedChanges] = React.useState>( {} @@ -44,17 +47,27 @@ export const Form = (props: FormProps) => { const [isLoading, setIsLoading] = React.useState(false); const unsavedChangesCount = Object.keys(unsavedChanges).length; + + const scopeUnsavedChanges = Object.keys(unsavedChanges) + .filter((id) => fields.some((field) => field.id === id)) + .reduce((obj: Record, key) => { + obj[key] = unsavedChanges[key]; + return obj; + }, {}); + + const hiddenChangesCount = unsavedChangesCount - Object.keys(scopeUnsavedChanges).length; + const hasInvalidChanges = Object.values(unsavedChanges).some(({ isInvalid }) => isInvalid); const clearAllUnsaved = () => { setUnsavedChanges({}); }; - const saveChanges = useSave({ fields, clearChanges: clearAllUnsaved }); + const saveChanges = useSave({ fields, clearChanges: clearAllUnsaved, scope }); const saveAll = async () => { setIsLoading(true); - await saveChanges(unsavedChanges); + await saveChanges(scopeUnsavedChanges); setIsLoading(false); }; @@ -89,6 +102,7 @@ export const Form = (props: FormProps) => { hasInvalidChanges={hasInvalidChanges} isLoading={isLoading} unsavedChangesCount={unsavedChangesCount} + hiddenChangesCount={hiddenChangesCount} /> )} diff --git a/packages/kbn-management/settings/components/form/reload_page_toast.tsx b/packages/kbn-management/settings/components/form/reload_page_toast.tsx index a8414dd4ccbe8..430dec61a7d7f 100644 --- a/packages/kbn-management/settings/components/form/reload_page_toast.tsx +++ b/packages/kbn-management/settings/components/form/reload_page_toast.tsx @@ -45,5 +45,6 @@ export const reloadPageToast = (theme: ThemeServiceStart, i18nStart: I18nStart): { i18n: i18nStart, theme } ), color: 'success', + toastLifeTimeMs: 15000, }; }; diff --git a/packages/kbn-management/settings/components/form/services.tsx b/packages/kbn-management/settings/components/form/services.tsx index 39aac8b4ecb01..ae2681fe88fcf 100644 --- a/packages/kbn-management/settings/components/form/services.tsx +++ b/packages/kbn-management/settings/components/form/services.tsx @@ -12,6 +12,7 @@ import { FieldCategoryKibanaProvider, FieldCategoryProvider, } from '@kbn/management-settings-components-field-category'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; import type { FormServices, FormKibanaDependencies, Services } from './types'; import { reloadPageToast } from './reload_page_toast'; @@ -44,9 +45,10 @@ export const FormKibanaProvider: FC = ({ children, ...de const { settings, notifications, docLinks, theme, i18n } = deps; const services: Services = { - saveChanges: (changes) => { + saveChanges: (changes, scope: UiSettingsScope) => { + const scopeClient = scope === 'namespace' ? settings.client : settings.globalClient; const arr = Object.entries(changes).map(([key, value]) => - settings.client.set(key, value.unsavedValue) + scopeClient.set(key, value.unsavedValue) ); return Promise.all(arr); }, diff --git a/packages/kbn-management/settings/components/form/storybook/form.stories.tsx b/packages/kbn-management/settings/components/form/storybook/form.stories.tsx index d239c862a6317..c1e357e09f81a 100644 --- a/packages/kbn-management/settings/components/form/storybook/form.stories.tsx +++ b/packages/kbn-management/settings/components/form/storybook/form.stories.tsx @@ -82,7 +82,9 @@ export const Form = ({ isSavingEnabled, requirePageReload }: FormStoryProps) => const onClearQuery = () => {}; - return ; + return ( + + ); }; Form.args = { diff --git a/packages/kbn-management/settings/components/form/tsconfig.json b/packages/kbn-management/settings/components/form/tsconfig.json index 6c9fdc36da899..8fbe9249a9538 100644 --- a/packages/kbn-management/settings/components/form/tsconfig.json +++ b/packages/kbn-management/settings/components/form/tsconfig.json @@ -33,5 +33,6 @@ "@kbn/management-settings-components-field-category", "@kbn/management-settings-utilities", "@kbn/core-analytics-browser-mocks", + "@kbn/core-ui-settings-common", ] } diff --git a/packages/kbn-management/settings/components/form/types.ts b/packages/kbn-management/settings/components/form/types.ts index 257c64cc02a72..2a0156a04ed15 100644 --- a/packages/kbn-management/settings/components/form/types.ts +++ b/packages/kbn-management/settings/components/form/types.ts @@ -15,12 +15,13 @@ import { IUiSettingsClient } from '@kbn/core-ui-settings-browser'; import { I18nStart } from '@kbn/core-i18n-browser'; import { ThemeServiceStart } from '@kbn/core-theme-browser'; import { ToastsStart } from '@kbn/core-notifications-browser'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; /** * Contextual services used by a {@link Form} component. */ export interface Services { - saveChanges: (changes: Record) => void; + saveChanges: (changes: Record, scope: UiSettingsScope) => void; showError: (message: string) => void; showReloadPagePrompt: () => void; } @@ -37,6 +38,7 @@ export type FormServices = FieldRowServices & Services; interface KibanaDependencies { settings: { client: Pick; + globalClient: Pick; }; theme: ThemeServiceStart; i18n: I18nStart; diff --git a/packages/kbn-management/settings/components/form/use_save.ts b/packages/kbn-management/settings/components/form/use_save.ts index f0679f31aca20..53af23e476d74 100644 --- a/packages/kbn-management/settings/components/form/use_save.ts +++ b/packages/kbn-management/settings/components/form/use_save.ts @@ -10,6 +10,7 @@ import type { FieldDefinition } from '@kbn/management-settings-types'; import { isEmpty } from 'lodash'; import { i18n } from '@kbn/i18n'; import { UnsavedFieldChange } from '@kbn/management-settings-types'; +import { UiSettingsScope } from '@kbn/core-ui-settings-common'; import { useServices } from './services'; export interface UseSaveParameters { @@ -17,6 +18,8 @@ export interface UseSaveParameters { fields: FieldDefinition[]; /** The function to invoke for clearing all unsaved changes. */ clearChanges: () => void; + /** The {@link UiSettingsScope} of the unsaved changes. */ + scope: UiSettingsScope; } /** @@ -33,7 +36,7 @@ export const useSave = (params: UseSaveParameters) => { return; } try { - await saveChanges(changes); + await saveChanges(changes, params.scope); params.clearChanges(); const requiresReload = params.fields.some( (setting) => changes.hasOwnProperty(setting.id) && setting.requiresPageReload diff --git a/packages/kbn-management/settings/setting_ids/index.ts b/packages/kbn-management/settings/setting_ids/index.ts index c176890334dc1..3268bc5ef05c8 100644 --- a/packages/kbn-management/settings/setting_ids/index.ts +++ b/packages/kbn-management/settings/setting_ids/index.ts @@ -133,6 +133,8 @@ export const OBSERVABILITY_APM_ENABLE_CONTINUOUS_ROLLUPS_ID = export const OBSERVABILITY_APM_ENABLE_PROFILING_INTEGRATION_ID = 'observability:apmEnableProfilingIntegration'; +export const OBSERVABILITY_APM_ENABLE_TABLE_SEARCH_BAR = 'observability:apmEnableTableSearchBar'; + // Reporting settings export const XPACK_REPORTING_CUSTOM_PDF_LOGO_ID = 'xpackReporting:customPdfLogo'; diff --git a/packages/kbn-management/settings/types/category.ts b/packages/kbn-management/settings/types/category.ts index fe5d4910e426f..79617f48a7c80 100644 --- a/packages/kbn-management/settings/types/category.ts +++ b/packages/kbn-management/settings/types/category.ts @@ -14,3 +14,7 @@ export interface CategorizedFields { fields: FieldDefinition[]; }; } + +export interface CategoryCounts { + [category: string]: number; +} diff --git a/packages/kbn-management/settings/types/index.ts b/packages/kbn-management/settings/types/index.ts index 7f8afb8073a5c..9a8a27e4ae244 100644 --- a/packages/kbn-management/settings/types/index.ts +++ b/packages/kbn-management/settings/types/index.ts @@ -65,7 +65,7 @@ export type { Value, } from './setting_type'; -export type { CategorizedFields } from './category'; +export type { CategorizedFields, CategoryCounts } from './category'; /** * A React `ref` that indicates an input can be reset using an diff --git a/packages/kbn-management/settings/types/tab.ts b/packages/kbn-management/settings/types/tab.ts new file mode 100644 index 0000000000000..cf87c9f066fd0 --- /dev/null +++ b/packages/kbn-management/settings/types/tab.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 { CategoryCounts } from './category'; +import { FieldDefinition } from '.'; + +export interface SettingsTabs { + [id: string]: { + name: string; + fields: FieldDefinition[]; + categoryCounts: CategoryCounts; + callOutTitle: string; + callOutText: string; + }; +} diff --git a/packages/kbn-management/settings/utilities/category/get_category_counts.ts b/packages/kbn-management/settings/utilities/category/get_category_counts.ts new file mode 100644 index 0000000000000..410de739f2899 --- /dev/null +++ b/packages/kbn-management/settings/utilities/category/get_category_counts.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 { FieldDefinition } from '@kbn/management-settings-types'; +import type { CategoryCounts } from '@kbn/management-settings-types/category'; +import { categorizeFields } from './categorize_fields'; + +/** + * Utility function to extract the number of fields in each settings category. + * @param fields A list of {@link FieldDefinition} objects. + * @returns A {@link CategoryCounts} object. + */ +export const getCategoryCounts = (fields: FieldDefinition[]): CategoryCounts => { + const categorizedFields = categorizeFields(fields); + const categoryCounts: CategoryCounts = {}; + Object.entries(categorizedFields).forEach( + ([category, value]) => (categoryCounts[category] = value.count) + ); + return categoryCounts; +}; diff --git a/packages/kbn-management/settings/utilities/category/index.ts b/packages/kbn-management/settings/utilities/category/index.ts index c562a888e0cbe..de6394f6c545e 100644 --- a/packages/kbn-management/settings/utilities/category/index.ts +++ b/packages/kbn-management/settings/utilities/category/index.ts @@ -8,3 +8,4 @@ export { categorizeFields } from './categorize_fields'; export { getCategoryName } from './get_category_name'; +export { getCategoryCounts } from './get_category_counts'; diff --git a/packages/kbn-management/settings/utilities/index.ts b/packages/kbn-management/settings/utilities/index.ts index 60cb17e47206f..a8d0d2ec8a3e2 100644 --- a/packages/kbn-management/settings/utilities/index.ts +++ b/packages/kbn-management/settings/utilities/index.ts @@ -16,4 +16,4 @@ export { type UseUpdateParameters, } from './field'; -export { categorizeFields, getCategoryName } from './category'; +export { categorizeFields, getCategoryName, getCategoryCounts } from './category'; diff --git a/packages/kbn-management/settings/utilities/mocks/settings.mock.ts b/packages/kbn-management/settings/utilities/mocks/settings.mock.ts index cbab285363464..5a7051ac276fb 100644 --- a/packages/kbn-management/settings/utilities/mocks/settings.mock.ts +++ b/packages/kbn-management/settings/utilities/mocks/settings.mock.ts @@ -15,6 +15,7 @@ type Settings = { /** * A utility function returning a representative set of UiSettings. * @param requiresPageReload The value of the `requirePageReload` param for all settings. + * @param readonly The value of the `readonly` param for all settings. */ export const getSettingsMock = ( requiresPageReload: boolean = false, @@ -125,3 +126,38 @@ export const getSettingsMock = ( }, }; }; + +/** + * A utility function returning a set of global settings. + * @param requiresPageReload The value of the `requirePageReload` param for all settings. + * @param readonly The value of the `readonly` param for all settings. + */ +export const getGlobalSettingsMock = ( + requiresPageReload: boolean = false, + readonly: boolean = false +) => { + const defaults = { + requiresPageReload, + readonly, + }; + return { + globalString: { + description: 'Description for a Global String test setting', + name: 'global:string:test:setting', + type: 'string', + userValue: null, + value: 'hello world', + category: ['custom branding'], + ...defaults, + }, + globalBoolean: { + description: 'Description for a Global Boolean test setting', + name: 'global:boolean:test:setting', + type: 'boolean', + userValue: null, + value: true, + category: ['custom branding'], + ...defaults, + }, + }; +}; diff --git a/packages/kbn-mock-idp-plugin/common/constants.ts b/packages/kbn-mock-idp-plugin/common/constants.ts deleted file mode 100644 index 6fb5475587574..0000000000000 --- a/packages/kbn-mock-idp-plugin/common/constants.ts +++ /dev/null @@ -1,24 +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 { resolve } from 'path'; - -export const MOCK_IDP_PLUGIN_PATH = resolve(__dirname, '..'); -export const MOCK_IDP_METADATA_PATH = resolve(MOCK_IDP_PLUGIN_PATH, 'metadata.xml'); - -export const MOCK_IDP_LOGIN_PATH = '/mock_idp/login'; -export const MOCK_IDP_LOGOUT_PATH = '/mock_idp/logout'; - -export const MOCK_IDP_REALM_NAME = 'mock-idp'; -export const MOCK_IDP_ENTITY_ID = 'urn:mock-idp'; // Must match `entityID` in `metadata.xml` -export const MOCK_IDP_ROLE_MAPPING_NAME = 'mock-idp-mapping'; - -export const MOCK_IDP_ATTRIBUTE_PRINCIPAL = 'http://saml.elastic-cloud.com/attributes/principal'; -export const MOCK_IDP_ATTRIBUTE_ROLES = 'http://saml.elastic-cloud.com/attributes/roles'; -export const MOCK_IDP_ATTRIBUTE_EMAIL = 'http://saml.elastic-cloud.com/attributes/email'; -export const MOCK_IDP_ATTRIBUTE_NAME = 'http://saml.elastic-cloud.com/attributes/name'; diff --git a/packages/kbn-mock-idp-plugin/common/index.ts b/packages/kbn-mock-idp-plugin/common/index.ts index aaaffc15f10f8..9b79606d51f88 100644 --- a/packages/kbn-mock-idp-plugin/common/index.ts +++ b/packages/kbn-mock-idp-plugin/common/index.ts @@ -6,22 +6,4 @@ * Side Public License, v 1. */ -export { - MOCK_IDP_PLUGIN_PATH, - MOCK_IDP_METADATA_PATH, - MOCK_IDP_LOGIN_PATH, - MOCK_IDP_LOGOUT_PATH, - MOCK_IDP_REALM_NAME, - MOCK_IDP_ENTITY_ID, - MOCK_IDP_ROLE_MAPPING_NAME, - MOCK_IDP_ATTRIBUTE_PRINCIPAL, - MOCK_IDP_ATTRIBUTE_ROLES, - MOCK_IDP_ATTRIBUTE_EMAIL, - MOCK_IDP_ATTRIBUTE_NAME, -} from './constants'; -export { - createMockIdpMetadata, - createSAMLResponse, - ensureSAMLRoleMapping, - parseSAMLAuthnRequest, -} from './utils'; +export { MOCK_IDP_REALM_NAME } from '@kbn/mock-idp-utils'; diff --git a/packages/kbn-mock-idp-plugin/common/utils.ts b/packages/kbn-mock-idp-plugin/common/utils.ts deleted file mode 100644 index f98425f08248f..0000000000000 --- a/packages/kbn-mock-idp-plugin/common/utils.ts +++ /dev/null @@ -1,231 +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 { Client } from '@elastic/elasticsearch'; -import { SignedXml } from 'xml-crypto'; -import { KBN_KEY_PATH, KBN_CERT_PATH } from '@kbn/dev-utils'; -import { readFile } from 'fs/promises'; -import zlib from 'zlib'; -import { promisify } from 'util'; -import { parseString } from 'xml2js'; -import { X509Certificate } from 'crypto'; - -import { - MOCK_IDP_REALM_NAME, - MOCK_IDP_ENTITY_ID, - MOCK_IDP_ROLE_MAPPING_NAME, - MOCK_IDP_ATTRIBUTE_PRINCIPAL, - MOCK_IDP_ATTRIBUTE_ROLES, - MOCK_IDP_ATTRIBUTE_EMAIL, - MOCK_IDP_ATTRIBUTE_NAME, - MOCK_IDP_LOGIN_PATH, - MOCK_IDP_LOGOUT_PATH, -} from './constants'; - -const inflateRawAsync = promisify(zlib.inflateRaw); -const parseStringAsync = promisify(parseString); - -/** - * Creates XML metadata for our mock identity provider. - * - * This can be saved to file and used to configure Elasticsearch SAML realm. - * - * @param kibanaUrl Fully qualified URL where Kibana is hosted (including base path) - */ -export async function createMockIdpMetadata(kibanaUrl: string) { - const signingKey = await readFile(KBN_CERT_PATH); - const cert = new X509Certificate(signingKey); - const trimTrailingSlash = (url: string) => (url.endsWith('/') ? url.slice(0, -1) : url); - - return ` - - - - - - ${cert.raw.toString('base64')} - - - - - - - - - - `; -} - -/** - * Creates a SAML response that can be passed directly to the Kibana ACS endpoint to authenticate a user. - * - * @example Create a SAML response. - * - * ```ts - * const samlResponse = await createSAMLResponse({ - * username: '1234567890', - * email: 'mail@elastic.co', - * fullname: 'Test User', - * roles: ['t1_analyst', 'editor'], - * }) - * ``` - * - * @example Authenticate user with SAML response. - * - * ```ts - * fetch('/api/security/saml/callback', { - * method: 'POST', - * body: JSON.stringify({ SAMLResponse: samlResponse }), - * redirect: 'manual' - * }) - * ``` - */ -export async function createSAMLResponse(options: { - /** Fully qualified URL where Kibana is hosted (including base path) */ - kibanaUrl: string; - /** ID from SAML authentication request */ - authnRequestId?: string; - username: string; - fullname?: string; - email?: string; - roles: string[]; -}) { - const issueInstant = new Date().toISOString(); - const notOnOrAfter = new Date(Date.now() + 3600 * 1000).toISOString(); - - const samlAssertionTemplateXML = ` - - ${MOCK_IDP_ENTITY_ID} - - _643ec1b3f5673583b9f9a1e9e73a36daa2a3748f - - - - - - - urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified - - - - - ${options.username} - - - ${options.roles - .map( - (role) => `${role}` - ) - .join('')} - - ${ - options.email - ? ` - ${options.email} - ` - : '' - } - ${ - options.fullname - ? ` - ${options.fullname} - ` - : '' - } - - - `; - - const signature = new SignedXml({ privateKey: await readFile(KBN_KEY_PATH) }); - signature.signatureAlgorithm = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256'; - signature.canonicalizationAlgorithm = 'http://www.w3.org/2001/10/xml-exc-c14n#'; - - // Adds a reference to a `Assertion` xml element and an array of transform algorithms to be used during signing. - signature.addReference({ - xpath: `//*[local-name(.)='Assertion']`, - digestAlgorithm: 'http://www.w3.org/2001/04/xmlenc#sha256', - transforms: [ - 'http://www.w3.org/2000/09/xmldsig#enveloped-signature', - 'http://www.w3.org/2001/10/xml-exc-c14n#', - ], - }); - - signature.computeSignature(samlAssertionTemplateXML, { - location: { reference: `//*[local-name(.)='Issuer']`, action: 'after' }, - }); - - const value = await Buffer.from( - ` - - ${MOCK_IDP_ENTITY_ID} - - - ${signature.getSignedXml()} - - ` - ).toString('base64'); - - return value; -} - -/** - * Creates the role mapping required for developers to authenticate using SAML. - */ -export async function ensureSAMLRoleMapping(client: Client) { - return client.transport.request({ - method: 'PUT', - path: `/_security/role_mapping/${MOCK_IDP_ROLE_MAPPING_NAME}`, - body: { - enabled: true, - role_templates: [ - { - template: '{"source":"{{#tojson}}groups{{/tojson}}"}', - format: 'json', - }, - ], - rules: { - all: [ - { - field: { - 'realm.name': MOCK_IDP_REALM_NAME, - }, - }, - ], - }, - }, - }); -} - -interface SAMLAuthnRequest { - 'saml2p:AuthnRequest': { - $: { - AssertionConsumerServiceURL: string; - Destination: string; - ID: string; - IssueInstant: string; - }; - }; -} - -export async function parseSAMLAuthnRequest(samlRequest: string) { - const inflatedSAMLRequest = (await inflateRawAsync(Buffer.from(samlRequest, 'base64'))) as Buffer; - const parsedSAMLRequest = (await parseStringAsync( - inflatedSAMLRequest.toString() - )) as SAMLAuthnRequest; - return parsedSAMLRequest['saml2p:AuthnRequest'].$; -} diff --git a/packages/kbn-mock-idp-plugin/kibana.jsonc b/packages/kbn-mock-idp-plugin/kibana.jsonc index 929d7b9b990db..e5bfa29ddc8b4 100644 --- a/packages/kbn-mock-idp-plugin/kibana.jsonc +++ b/packages/kbn-mock-idp-plugin/kibana.jsonc @@ -6,6 +6,13 @@ "plugin": { "id": "mockIdpPlugin", "server": true, - "browser": false + "browser": true, + "enabledOnAnonymousPages": true, + "requiredPlugins": [ + "cloud" + ], + "requiredBundles": [ + "kibanaReact" + ] } } \ No newline at end of file diff --git a/packages/kbn-mock-idp-plugin/public/index.ts b/packages/kbn-mock-idp-plugin/public/index.ts new file mode 100644 index 0000000000000..db807851d4564 --- /dev/null +++ b/packages/kbn-mock-idp-plugin/public/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 { plugin } from './plugin'; diff --git a/packages/kbn-mock-idp-plugin/public/login_page.tsx b/packages/kbn-mock-idp-plugin/public/login_page.tsx new file mode 100644 index 0000000000000..d5eead71dbfb8 --- /dev/null +++ b/packages/kbn-mock-idp-plugin/public/login_page.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 { + EuiButton, + EuiPageTemplate, + EuiEmptyPrompt, + EuiComboBox, + EuiInlineEditTitle, + EuiFormRow, + EuiSpacer, + EuiComboBoxOptionOption, + EuiButtonEmpty, +} from '@elastic/eui'; +import React, { ChangeEvent, FunctionComponent } from 'react'; +import { FormikProvider, useFormik, Field, Form } from 'formik'; + +import { + MOCK_IDP_SECURITY_ROLE_NAMES, + MOCK_IDP_OBSERVABILITY_ROLE_NAMES, + MOCK_IDP_SEARCH_ROLE_NAMES, +} from '@kbn/mock-idp-utils/src/constants'; +import { useAuthenticator } from './role_switcher'; + +export interface LoginPageProps { + projectType?: string; +} + +export const LoginPage: FunctionComponent = ({ projectType }) => { + const roles = + projectType === 'security' + ? MOCK_IDP_SECURITY_ROLE_NAMES + : projectType === 'observability' + ? MOCK_IDP_OBSERVABILITY_ROLE_NAMES + : MOCK_IDP_SEARCH_ROLE_NAMES; + + const [, switchCurrentUser] = useAuthenticator(true); + const formik = useFormik({ + initialValues: { + full_name: 'Test User', + role: roles[0], + }, + async onSubmit(values) { + await switchCurrentUser({ + username: sanitizeUsername(values.full_name), + full_name: values.full_name, + email: sanitizeEmail(values.full_name), + roles: [values.role], + }); + }, + }); + + return ( + + + + + + ) => { + formik.setFieldValue('full_name', event.target.value); + }} + onCancel={(previousValue: string) => { + formik.setFieldValue('full_name', previousValue); + }} + isReadOnly={formik.isSubmitting} + editModeProps={{ + formRowProps: { + error: formik.errors.full_name, + }, + }} + validate={(value: string) => { + if (value.trim().length === 0) { + return 'Name cannot be empty'; + } + }} + isInvalid={!!formik.errors.full_name} + placeholder="Enter your name" + css={{ width: 350 }} + /> + + + + ({ label: role }))} + selectedOptions={ + formik.values.role ? [{ label: formik.values.role }] : undefined + } + onCreateOption={(value: string) => { + formik.setFieldValue('role', value); + }} + onChange={(selectedOptions: EuiComboBoxOptionOption[]) => { + formik.setFieldValue( + 'role', + selectedOptions.length === 0 ? '' : selectedOptions[0].label + ); + }} + validate={(value: string) => { + if (value.trim().length === 0) { + return 'Role cannot be empty'; + } + }} + isInvalid={!!formik.errors.role} + isClearable={false} + fullWidth + /> + + + } + actions={[ + + Log in + , + + More login options + , + ]} + /> + + + + + ); +}; + +const sanitizeUsername = (username: string) => + username.replace(/[^a-zA-Z0-9_]/g, '_').toLowerCase(); +const sanitizeEmail = (email: string) => `${sanitizeUsername(email)}@elastic.co`; diff --git a/packages/kbn-mock-idp-plugin/public/plugin.tsx b/packages/kbn-mock-idp-plugin/public/plugin.tsx new file mode 100644 index 0000000000000..3a7ad8b12951f --- /dev/null +++ b/packages/kbn-mock-idp-plugin/public/plugin.tsx @@ -0,0 +1,84 @@ +/* + * 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 { PluginInitializer } from '@kbn/core-plugins-browser'; +import { AppNavLinkStatus } from '@kbn/core-application-browser'; +import React from 'react'; +import ReactDOM from 'react-dom'; +import { KibanaThemeProvider } from '@kbn/react-kibana-context-theme'; +import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; +import { I18nProvider } from '@kbn/i18n-react'; +import { MOCK_IDP_LOGIN_PATH } from '@kbn/mock-idp-utils/src/constants'; +import type { CloudStart, CloudSetup } from '@kbn/cloud-plugin/public'; +import { RoleSwitcher } from './role_switcher'; + +export interface PluginSetupDependencies { + cloud?: CloudSetup; +} + +export interface PluginStartDependencies { + cloud?: CloudStart; +} + +export const plugin: PluginInitializer< + void, + void, + PluginSetupDependencies, + PluginStartDependencies +> = () => ({ + setup(coreSetup, plugins) { + // Register Mock IDP login page + coreSetup.http.anonymousPaths.register(MOCK_IDP_LOGIN_PATH); + coreSetup.application.register({ + id: 'mock_idp', + title: 'Mock IDP', + chromeless: true, + appRoute: MOCK_IDP_LOGIN_PATH, + navLinkStatus: AppNavLinkStatus.hidden, + mount: async (params) => { + const [[coreStart], { LoginPage }] = await Promise.all([ + coreSetup.getStartServices(), + import('./login_page'), + ]); + + ReactDOM.render( + + + + + + + , + params.element + ); + + return () => ReactDOM.unmountComponentAtNode(params.element); + }, + }); + }, + start(coreStart, plugins) { + // Register role switcher dropdown menu in the top right navigation of the Kibana UI + coreStart.chrome.navControls.registerRight({ + order: 4000 + 1, // Make sure it comes after the user menu + mount: (element: HTMLElement) => { + ReactDOM.render( + + + + + + + , + element + ); + return () => ReactDOM.unmountComponentAtNode(element); + }, + }); + }, + stop() {}, +}); diff --git a/packages/kbn-mock-idp-plugin/public/reload_page_toast.tsx b/packages/kbn-mock-idp-plugin/public/reload_page_toast.tsx new file mode 100644 index 0000000000000..38b5e1ba86c73 --- /dev/null +++ b/packages/kbn-mock-idp-plugin/public/reload_page_toast.tsx @@ -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 React from 'react'; + +import { toMountPoint } from '@kbn/react-kibana-mount'; +import { EuiButton, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import type { ToastInput } from '@kbn/core-notifications-browser'; +import type { I18nStart } from '@kbn/core-i18n-browser'; +import type { ThemeServiceStart } from '@kbn/core-theme-browser'; +import type { AuthenticatedUser } from '@kbn/security-plugin-types-common'; + +export const DATA_TEST_SUBJ_PAGE_RELOAD_BUTTON = 'pageReloadButton'; + +/** + * Utility function for returning a {@link ToastInput} for displaying a prompt for reloading the page. + * @param theme The {@link ThemeServiceStart} contract. + * @param i18nStart The {@link I18nStart} contract. + * @returns A toast. + */ +export const createReloadPageToast = (options: { + user: Pick; + theme: ThemeServiceStart; + i18n: I18nStart; +}): ToastInput => { + return { + title: `Your role has been set to '${options.user.roles.join(`', '`)}'.`, + text: toMountPoint( + + + window.location.reload()} + data-test-subj={DATA_TEST_SUBJ_PAGE_RELOAD_BUTTON} + > + Reload page + + + , + { i18n: options.i18n, theme: options.theme } + ), + color: 'success', + toastLifeTimeMs: 0x7fffffff, // Do not auto-hide toast since page is in an unknown state + }; +}; diff --git a/packages/kbn-mock-idp-plugin/public/role_switcher.tsx b/packages/kbn-mock-idp-plugin/public/role_switcher.tsx new file mode 100644 index 0000000000000..cf536d54b885c --- /dev/null +++ b/packages/kbn-mock-idp-plugin/public/role_switcher.tsx @@ -0,0 +1,168 @@ +/* + * 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, { FunctionComponent, useEffect, useState } from 'react'; +import { EuiButton, EuiPopover, EuiContextMenu } from '@elastic/eui'; +import { useKibana } from '@kbn/kibana-react-plugin/public'; +import { CoreStart } from '@kbn/core-lifecycle-browser'; +import useAsyncFn from 'react-use/lib/useAsyncFn'; +import type { AuthenticatedUser } from '@kbn/security-plugin-types-common'; +import { + MOCK_IDP_REALM_NAME, + MOCK_IDP_REALM_TYPE, + MOCK_IDP_SECURITY_ROLE_NAMES, + MOCK_IDP_OBSERVABILITY_ROLE_NAMES, + MOCK_IDP_SEARCH_ROLE_NAMES, +} from '@kbn/mock-idp-utils/src/constants'; +import { createReloadPageToast } from './reload_page_toast'; +import type { CreateSAMLResponseParams } from '../server'; + +const useCurrentUser = () => { + const { services } = useKibana(); + return useAsyncFn(() => services.http.get('/internal/security/me')); +}; + +export const useAuthenticator = (reloadPage = false) => { + const { services } = useKibana(); + + return useAsyncFn(async (params: CreateSAMLResponseParams) => { + // Create SAML Response using Mock IDP + const response = await services.http.post>('/mock_idp/saml_response', { + body: JSON.stringify(params), + }); + + // Authenticate user with SAML response + if (reloadPage) { + const form = createForm('/api/security/saml/callback', response); + form.submit(); + await new Promise(() => {}); // Never resolve + } else { + await services.http.post('/api/security/saml/callback', { + body: JSON.stringify(response), + asResponse: true, + rawResponse: true, + }); + } + + return params; + }); +}; + +export interface RoleSwitcherProps { + projectType?: string; +} + +export const RoleSwitcher: FunctionComponent = ({ projectType }) => { + const [isOpen, setIsOpen] = useState(false); + const { services } = useKibana(); + const [currentUserState, getCurrentUser] = useCurrentUser(); + const [authenticateUserState, authenticateUser] = useAuthenticator(); + + useEffect(() => { + getCurrentUser(); + }, [getCurrentUser, authenticateUserState.value]); + + useEffect(() => { + if (authenticateUserState.value) { + services.notifications.toasts.add( + createReloadPageToast({ + user: authenticateUserState.value, + theme: services.theme, + i18n: services.i18n, + }) + ); + } + }, [authenticateUserState.value]); // eslint-disable-line react-hooks/exhaustive-deps + + if (!currentUserState.value || !isAuthenticatedWithMockIDP(currentUserState.value)) { + return null; + } + + const [currentRole] = currentUserState.value.roles; + + const roles = + projectType === 'security' + ? MOCK_IDP_SECURITY_ROLE_NAMES + : projectType === 'observability' + ? MOCK_IDP_OBSERVABILITY_ROLE_NAMES + : MOCK_IDP_SEARCH_ROLE_NAMES; + + return ( + setIsOpen((toggle) => !toggle)} + isLoading={currentUserState.loading || authenticateUserState.loading} + > + {currentRole} + + } + panelPaddingSize="none" + offset={4} + anchorPosition="downRight" + repositionOnScroll + repositionToCrossAxis={false} + isOpen={isOpen} + closePopover={() => setIsOpen(false)} + > + ({ + name: role, + icon: currentUserState.value!.roles.includes(role) ? 'check' : 'empty', + onClick: () => { + authenticateUser({ + username: currentUserState.value!.username, + full_name: currentUserState.value!.full_name, + email: currentUserState.value!.email, + roles: [role], + }); + setIsOpen(false); + }, + })), + }, + ]} + /> + + ); +}; + +function isAuthenticatedWithMockIDP(user: AuthenticatedUser) { + return ( + user.authentication_provider.type === MOCK_IDP_REALM_TYPE && + user.authentication_provider.name === MOCK_IDP_REALM_NAME + ); +} + +const createForm = (url: string, fields: Record) => { + const form = document.createElement('form'); + form.setAttribute('method', 'post'); + form.setAttribute('action', url); + + for (const key in fields) { + if (!fields.hasOwnProperty(key)) { + continue; + } + const input = document.createElement('input'); + input.setAttribute('type', 'hidden'); + input.setAttribute('name', key); + input.setAttribute('value', fields[key]); + form.appendChild(input); + } + + return document.body.appendChild(form); +}; diff --git a/packages/kbn-mock-idp-plugin/server/index.ts b/packages/kbn-mock-idp-plugin/server/index.ts index db807851d4564..81f6713e675fe 100644 --- a/packages/kbn-mock-idp-plugin/server/index.ts +++ b/packages/kbn-mock-idp-plugin/server/index.ts @@ -6,4 +6,5 @@ * Side Public License, v 1. */ +export type { CreateSAMLResponseParams } from './plugin'; export { plugin } from './plugin'; diff --git a/packages/kbn-mock-idp-plugin/server/plugin.ts b/packages/kbn-mock-idp-plugin/server/plugin.ts index 20c115d80cf2c..53f79798ed3ce 100644 --- a/packages/kbn-mock-idp-plugin/server/plugin.ts +++ b/packages/kbn-mock-idp-plugin/server/plugin.ts @@ -8,99 +8,56 @@ import type { PluginInitializer, Plugin } from '@kbn/core-plugins-server'; import { schema } from '@kbn/config-schema'; +import type { TypeOf } from '@kbn/config-schema'; +import { MOCK_IDP_LOGIN_PATH, MOCK_IDP_LOGOUT_PATH, createSAMLResponse } from '@kbn/mock-idp-utils'; -import { - MOCK_IDP_LOGIN_PATH, - MOCK_IDP_LOGOUT_PATH, - createSAMLResponse, - parseSAMLAuthnRequest, -} from '../common'; +const createSAMLResponseSchema = schema.object({ + username: schema.string(), + full_name: schema.maybe(schema.nullable(schema.string())), + email: schema.maybe(schema.nullable(schema.string())), + roles: schema.arrayOf(schema.string()), +}); + +export type CreateSAMLResponseParams = TypeOf; export const plugin: PluginInitializer = async (): Promise => ({ setup(core) { + const router = core.http.createRouter(); + core.http.resources.register( { path: MOCK_IDP_LOGIN_PATH, - validate: { - query: schema.object({ - SAMLRequest: schema.string(), - }), - }, + validate: false, options: { authRequired: false }, }, async (context, request, response) => { - let samlRequest: Awaited>; - try { - samlRequest = await parseSAMLAuthnRequest(request.query.SAMLRequest); - } catch (error) { - return response.badRequest({ - body: '[request query.SAMLRequest]: value is not valid SAMLRequest.', - }); - } - - const userRoles: Array<[string, string]> = [ - ['system_indices_superuser', 'system_indices_superuser'], - ['t1_analyst', 't1_analyst'], - ['t2_analyst', 't2_analyst'], - ['t3_analyst', 't3_analyst'], - ['threat_intelligence_analyst', 'threat_intelligence_analyst'], - ['rule_author', 'rule_author'], - ['soc_manager', 'soc_manager'], - ['detections_admin', 'detections_admin'], - ['platform_engineer', 'platform_engineer'], - ['endpoint_operations_analyst', 'endpoint_operations_analyst'], - ['endpoint_policy_manager', 'endpoint_policy_manager'], - ]; - - const samlResponses = await Promise.all( - userRoles.map(([username, role]) => - createSAMLResponse({ - authnRequestId: samlRequest.ID, - kibanaUrl: samlRequest.AssertionConsumerServiceURL, - username, - roles: [role], - }) - ) - ); - - return response.renderHtml({ - body: ` - - Mock Identity Provider - - -

Mock Identity Provider

-
-

Pick a role:

-
    - ${userRoles - .map( - ([username], i) => - ` -
  • - -
  • - ` - ) - .join('')} -
- - - `, - }); + return response.renderAnonymousCoreApp(); } ); - core.http.resources.register( + router.post( { - path: `${MOCK_IDP_LOGIN_PATH}/submit.js`, - validate: false, + path: '/mock_idp/saml_response', + validate: { + body: createSAMLResponseSchema, + }, options: { authRequired: false }, }, - (context, request, response) => { - return response.renderJs({ body: 'document.getElementById("loginForm").submit();' }); + async (context, request, response) => { + const { protocol, hostname, port } = core.http.getServerInfo(); + const pathname = core.http.basePath.prepend('/api/security/saml/callback'); + + return response.ok({ + body: { + SAMLResponse: await createSAMLResponse({ + kibanaUrl: `${protocol}://${hostname}:${port}${pathname}`, + username: request.body.username, + full_name: request.body.full_name ?? undefined, + email: request.body.email ?? undefined, + roles: request.body.roles, + }), + }, + }); } ); diff --git a/packages/kbn-mock-idp-plugin/tsconfig.json b/packages/kbn-mock-idp-plugin/tsconfig.json index 1420a34208f13..c0a6e574cb2e4 100644 --- a/packages/kbn-mock-idp-plugin/tsconfig.json +++ b/packages/kbn-mock-idp-plugin/tsconfig.json @@ -11,8 +11,20 @@ "target/**/*" ], "kbn_references": [ - "@kbn/core-plugins-server", "@kbn/config-schema", - "@kbn/dev-utils" + "@kbn/core-application-browser", + "@kbn/core-i18n-browser", + "@kbn/core-lifecycle-browser", + "@kbn/core-notifications-browser", + "@kbn/core-plugins-browser", + "@kbn/core-plugins-server", + "@kbn/core-theme-browser", + "@kbn/i18n-react", + "@kbn/kibana-react-plugin", + "@kbn/react-kibana-context-theme", + "@kbn/react-kibana-mount", + "@kbn/security-plugin-types-common", + "@kbn/mock-idp-utils", + "@kbn/cloud-plugin", ] } diff --git a/packages/kbn-mock-idp-utils/index.ts b/packages/kbn-mock-idp-utils/index.ts new file mode 100644 index 0000000000000..de0577ee3ed83 --- /dev/null +++ b/packages/kbn-mock-idp-utils/index.ts @@ -0,0 +1,9 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export * from './src'; diff --git a/packages/kbn-mock-idp-utils/kibana.jsonc b/packages/kbn-mock-idp-utils/kibana.jsonc new file mode 100644 index 0000000000000..443dd39d1e6d6 --- /dev/null +++ b/packages/kbn-mock-idp-utils/kibana.jsonc @@ -0,0 +1,6 @@ +{ + "type": "shared-common", + "id": "@kbn/mock-idp-utils", + "owner": "@elastic/kibana-security", + "devOnly": true, +} \ No newline at end of file diff --git a/packages/kbn-mock-idp-utils/package.json b/packages/kbn-mock-idp-utils/package.json new file mode 100644 index 0000000000000..d0a52e2090808 --- /dev/null +++ b/packages/kbn-mock-idp-utils/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/mock-idp-utils", + "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-mock-idp-utils/src/constants.ts b/packages/kbn-mock-idp-utils/src/constants.ts new file mode 100644 index 0000000000000..dc20dc850daa9 --- /dev/null +++ b/packages/kbn-mock-idp-utils/src/constants.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 MOCK_IDP_LOGIN_PATH = '/mock_idp/login'; +export const MOCK_IDP_LOGOUT_PATH = '/mock_idp/logout'; + +export const MOCK_IDP_REALM_NAME = 'mock-idp'; +export const MOCK_IDP_REALM_TYPE = 'saml'; +export const MOCK_IDP_ENTITY_ID = 'urn:mock-idp'; // Must match `entityID` in `metadata.xml` +export const MOCK_IDP_ROLE_MAPPING_NAME = 'mock-idp-mapping'; + +export const MOCK_IDP_ATTRIBUTE_PRINCIPAL = 'http://saml.elastic-cloud.com/attributes/principal'; +export const MOCK_IDP_ATTRIBUTE_ROLES = 'http://saml.elastic-cloud.com/attributes/roles'; +export const MOCK_IDP_ATTRIBUTE_EMAIL = 'http://saml.elastic-cloud.com/attributes/email'; +export const MOCK_IDP_ATTRIBUTE_NAME = 'http://saml.elastic-cloud.com/attributes/name'; + +/** List of roles from `packages/kbn-es/src/serverless_resources/roles.yml` */ +export const MOCK_IDP_SEARCH_ROLE_NAMES = ['viewer', 'editor', 'system_indices_superuser']; +export const MOCK_IDP_OBSERVABILITY_ROLE_NAMES = ['viewer', 'editor', 'system_indices_superuser']; +export const MOCK_IDP_SECURITY_ROLE_NAMES = [ + 't1_analyst', + 't2_analyst', + 't3_analyst', + 'threat_intelligence_analyst', + 'rule_author', + 'soc_manager', + 'detections_admin', + 'platform_engineer', + 'endpoint_operations_analyst', + 'endpoint_policy_manager', + 'system_indices_superuser', +]; diff --git a/packages/kbn-mock-idp-utils/src/index.ts b/packages/kbn-mock-idp-utils/src/index.ts new file mode 100644 index 0000000000000..413d58da7d6a1 --- /dev/null +++ b/packages/kbn-mock-idp-utils/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. + */ + +export { + MOCK_IDP_LOGIN_PATH, + MOCK_IDP_LOGOUT_PATH, + MOCK_IDP_REALM_NAME, + MOCK_IDP_REALM_TYPE, + MOCK_IDP_ENTITY_ID, + MOCK_IDP_ROLE_MAPPING_NAME, + MOCK_IDP_ATTRIBUTE_PRINCIPAL, + MOCK_IDP_ATTRIBUTE_ROLES, + MOCK_IDP_ATTRIBUTE_EMAIL, + MOCK_IDP_ATTRIBUTE_NAME, + MOCK_IDP_SEARCH_ROLE_NAMES, + MOCK_IDP_OBSERVABILITY_ROLE_NAMES, + MOCK_IDP_SECURITY_ROLE_NAMES, +} from './constants'; + +export { createMockIdpMetadata, createSAMLResponse, ensureSAMLRoleMapping } from './utils'; diff --git a/packages/kbn-mock-idp-utils/src/utils.ts b/packages/kbn-mock-idp-utils/src/utils.ts new file mode 100644 index 0000000000000..f4b492bf90560 --- /dev/null +++ b/packages/kbn-mock-idp-utils/src/utils.ts @@ -0,0 +1,206 @@ +/* + * 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 { Client } from '@elastic/elasticsearch'; + +import { SignedXml } from 'xml-crypto'; +import { KBN_KEY_PATH, KBN_CERT_PATH } from '@kbn/dev-utils'; +import { readFile } from 'fs/promises'; +import { X509Certificate } from 'crypto'; + +import { + MOCK_IDP_REALM_NAME, + MOCK_IDP_ENTITY_ID, + MOCK_IDP_ROLE_MAPPING_NAME, + MOCK_IDP_ATTRIBUTE_PRINCIPAL, + MOCK_IDP_ATTRIBUTE_ROLES, + MOCK_IDP_ATTRIBUTE_EMAIL, + MOCK_IDP_ATTRIBUTE_NAME, + MOCK_IDP_LOGIN_PATH, + MOCK_IDP_LOGOUT_PATH, +} from './constants'; + +/** + * Creates XML metadata for our mock identity provider. + * + * This can be saved to file and used to configure Elasticsearch SAML realm. + * + * @param kibanaUrl Fully qualified URL where Kibana is hosted (including base path) + */ +export async function createMockIdpMetadata(kibanaUrl: string) { + const signingKey = await readFile(KBN_CERT_PATH); + const cert = new X509Certificate(signingKey); + const trimTrailingSlash = (url: string) => (url.endsWith('/') ? url.slice(0, -1) : url); + + return ` + + + + + + ${cert.raw.toString('base64')} + + + + + + + + + + `; +} + +/** + * Creates a SAML response that can be passed directly to the Kibana ACS endpoint to authenticate a user. + * + * @example Create a SAML response. + * + * ```ts + * const samlResponse = await createSAMLResponse({ + * username: '1234567890', + * email: 'mail@elastic.co', + * full_nname: 'Test User', + * roles: ['t1_analyst', 'editor'], + * }) + * ``` + * + * @example Authenticate user with SAML response. + * + * ```ts + * fetch('/api/security/saml/callback', { + * method: 'POST', + * body: JSON.stringify({ SAMLResponse: samlResponse }), + * }) + * ``` + */ +export async function createSAMLResponse(options: { + /** Fully qualified URL where Kibana is hosted (including base path) */ + kibanaUrl: string; + /** ID from SAML authentication request */ + authnRequestId?: string; + username: string; + full_name?: string; + email?: string; + roles: string[]; +}) { + const issueInstant = new Date().toISOString(); + const notOnOrAfter = new Date(Date.now() + 3600 * 1000).toISOString(); + + const samlAssertionTemplateXML = ` + + ${MOCK_IDP_ENTITY_ID} + + _643ec1b3f5673583b9f9a1e9e73a36daa2a3748f + + + + + + + urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified + + + + + ${options.username} + + + ${options.roles + .map( + (role) => `${role}` + ) + .join('')} + + ${ + options.email + ? ` + ${options.email} + ` + : '' + } + ${ + options.full_name + ? ` + ${options.full_name} + ` + : '' + } + + + `; + + const signature = new SignedXml({ privateKey: await readFile(KBN_KEY_PATH) }); + signature.signatureAlgorithm = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256'; + signature.canonicalizationAlgorithm = 'http://www.w3.org/2001/10/xml-exc-c14n#'; + + // Adds a reference to a `Assertion` xml element and an array of transform algorithms to be used during signing. + signature.addReference({ + xpath: `//*[local-name(.)='Assertion']`, + digestAlgorithm: 'http://www.w3.org/2001/04/xmlenc#sha256', + transforms: [ + 'http://www.w3.org/2000/09/xmldsig#enveloped-signature', + 'http://www.w3.org/2001/10/xml-exc-c14n#', + ], + }); + + signature.computeSignature(samlAssertionTemplateXML, { + location: { reference: `//*[local-name(.)='Issuer']`, action: 'after' }, + }); + + const value = await Buffer.from( + ` + + ${MOCK_IDP_ENTITY_ID} + + + ${signature.getSignedXml()} + + ` + ).toString('base64'); + + return value; +} + +/** + * Creates the role mapping required for developers to authenticate using SAML. + */ +export async function ensureSAMLRoleMapping(client: Client) { + return client.transport.request({ + method: 'PUT', + path: `/_security/role_mapping/${MOCK_IDP_ROLE_MAPPING_NAME}`, + body: { + enabled: true, + role_templates: [ + { + template: '{"source":"{{#tojson}}groups{{/tojson}}"}', + format: 'json', + }, + ], + rules: { + all: [ + { + field: { + 'realm.name': MOCK_IDP_REALM_NAME, + }, + }, + ], + }, + }, + }); +} diff --git a/packages/kbn-mock-idp-utils/tsconfig.json b/packages/kbn-mock-idp-utils/tsconfig.json new file mode 100644 index 0000000000000..080fe38e30b6d --- /dev/null +++ b/packages/kbn-mock-idp-utils/tsconfig.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types" + }, + "include": [ + "**/*.ts", + "**/*.tsx" + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/dev-utils", + ] +} diff --git a/packages/kbn-monaco/BUILD.bazel b/packages/kbn-monaco/BUILD.bazel index 2ca10b073fd18..232ebdb2ba39b 100644 --- a/packages/kbn-monaco/BUILD.bazel +++ b/packages/kbn-monaco/BUILD.bazel @@ -36,6 +36,7 @@ webpack_cli( data = SRCS + SHARED_DEPS + [ "//:.browserslistrc", "//packages/kbn-babel-preset", + "@npm//terser-webpack-plugin", "@npm//@babel/runtime", "@npm//babel-loader", "@npm//raw-loader", diff --git a/packages/kbn-monaco/index.ts b/packages/kbn-monaco/index.ts index 2ebb05bd0e393..c764bc679c1ab 100644 --- a/packages/kbn-monaco/index.ts +++ b/packages/kbn-monaco/index.ts @@ -8,7 +8,15 @@ import './src/register_globals'; -export { monaco } from './src/monaco_imports'; +export { + monaco, + cssConf, + cssLanguage, + markdownConf, + markdownLanguage, + yamlConf, + yamlLanguage, +} from './src/monaco_imports'; export { XJsonLang } from './src/xjson'; export { SQLLang } from './src/sql'; export { ESQL_LANG_ID, ESQL_THEME_ID, ESQLLang } from './src/esql'; @@ -17,6 +25,7 @@ export type { ESQLCallbacks } from './src/esql'; export * from './src/painless'; /* eslint-disable-next-line @kbn/eslint/module_migration */ import * as BarePluginApi from 'monaco-editor/esm/vs/editor/editor.api'; +export { YAML_LANG_ID, configureMonacoYamlSchema } from './src/yaml'; import { registerLanguage } from './src/helpers'; diff --git a/packages/kbn-monaco/package.json b/packages/kbn-monaco/package.json index fc546d73017cb..a20980d11864e 100644 --- a/packages/kbn-monaco/package.json +++ b/packages/kbn-monaco/package.json @@ -5,7 +5,7 @@ "license": "SSPL-1.0 OR Elastic License 2.0", "scripts": { "build:antlr4ts:painless": "../../node_modules/antlr4ts-cli/antlr4ts ./src/painless/antlr/painless_lexer.g4 ./src/painless/antlr/painless_parser.g4 && node ./scripts/fix_generated_antlr.js painless", - "build:antlr4ts:esql": "../../node_modules/antlr4ts-cli/antlr4ts src/esql/antlr/esql_lexer.g4 src/esql/antlr/esql_parser.g4 && node ./scripts/fix_generated_antlr.js esql", + "build:antlr4ts:esql": "../../node_modules/antlr4ts-cli/antlr4ts src/esql/antlr/esql_lexer.g4 src/esql/antlr/esql_parser.g4 && node ./scripts/fix_generated_antlr.js esql && node ./scripts/esql_update_ast_script.js", "build:antlr4ts": "npm run build:antlr4ts:painless && npm run build:antlr4ts:esql" } } diff --git a/packages/kbn-monaco/scripts/esql_update_ast_script.js b/packages/kbn-monaco/scripts/esql_update_ast_script.js new file mode 100644 index 0000000000000..1cee3d7024b7c --- /dev/null +++ b/packages/kbn-monaco/scripts/esql_update_ast_script.js @@ -0,0 +1,122 @@ +/* + * 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 { join } = require('path'); +const { ESLint } = require('eslint'); +const partition = require('lodash/partition'); +const { readdirSync, readFileSync, writeFileSync } = require('fs'); +const ora = require('ora'); +const log = ora('Updating ES|QL AST walker from antlr grammar').start(); +/* + * This script will read from the parser file generated by the "build:antlr4ts:esql" task + * and extract all quoted/unquoted tokens to update their ids + * into the "ast_helper" file. + * This prevents the bundle size to increase by ~500 kb ("esql_parser" size). + * This script is run at the end of "build:antlr4ts:esql" task, so no need to call it manually. + */ +async function execute(folder) { + const generatedAntlrFolder = join(__dirname, '..', 'src', folder, 'antlr'); + + const generatedAntlrFolderContents = readdirSync(generatedAntlrFolder); + + const tokenRegex = /public static readonly (?[A-Z_]*(UN)*QUOTED_[A-Z_]+) = (?\d+);/; + const lexerFile = generatedAntlrFolderContents.find((file) => file === 'esql_parser.ts'); + const lexerFileRows = readFileSync(join(generatedAntlrFolder, lexerFile), 'utf8') + .toString() + .split('\n'); + const tokenList = []; + for (const row of lexerFileRows) { + const match = row.match(tokenRegex); + if (match?.groups) { + tokenList.push(match.groups); + } + } + const [unquotedList, quotedList] = partition(tokenList, ({ name }) => /UNQUOTED/.test(name)); + + // now all quote/unquoted tokens are registered + // dump them into the ast_helper file + const astHelperFileFolder = join(__dirname, '..', 'src', folder, 'lib', 'ast'); + const astHelperFilename = 'ast_helpers.ts'; + + try { + const astHelperContentRows = readFileSync(join(astHelperFileFolder, astHelperFilename), 'utf8') + .toString() + .split('\n'); + + const startAutoGeneratedComment = astHelperContentRows.findIndex( + (row) => row === '/* SCRIPT_MARKER_START */' + ); + const endAutoGeneratedComment = + astHelperContentRows.findIndex((row) => row === '/* SCRIPT_MARKER_END */') + 1; + + const newFunctionsContent = ` +/* SCRIPT_MARKER_START */ +function getQuotedText(ctx: ParserRuleContext) { + return [ + ${quotedList.map(({ name, value }) => `${value} /* esql_parser.${name} */`).join(', ')} + ] + .map((keyCode) => ctx.tryGetToken(keyCode, 0)) + .filter(nonNullable)[0]; + } + +function getUnquotedText(ctx: ParserRuleContext) { + return [ + ${unquotedList.map(({ name, value }) => `${value} /* esql_parser.${name} */`).join(', ')} + + ] + .map((keyCode) => ctx.tryGetToken(keyCode, 0)) + .filter(nonNullable)[0]; +} +/* SCRIPT_MARKER_END */ +`; + + const fileContent = astHelperContentRows + .slice(0, startAutoGeneratedComment) + .concat(newFunctionsContent.split('\n'), astHelperContentRows.slice(endAutoGeneratedComment)); + + const fileContentString = fileContent.join('\n'); + + const eslint = new ESLint({ + fix: true, + overrideConfig: { + parser: '@typescript-eslint/parser', + parserOptions: { + sourceType: 'module', + ecmaVersion: 2018, + }, + rules: { + '@kbn/imports/no_unresolvable_imports': 'off', + 'prettier/prettier': [ + 'error', + { + parser: 'typescript', + }, + ], + }, + }, + }); + + const results = await eslint.lintText(fileContentString); + + if (results.some(({ messages }) => messages.length > 0)) { + const formatter = await eslint.loadFormatter('stylish'); + const resultText = formatter.format(results); + process.exitCode = 1; + return log.fail(resultText); + } + + const filePath = join(astHelperFileFolder, astHelperFilename); + writeFileSync(filePath, results[0].output || '', { encoding: 'utf8' }); + } catch (err) { + return log.fail(err.message); + } + + log.succeed('Updated ES|QL helper from antlr grammar successfully'); +} + +execute('esql'); diff --git a/packages/kbn-monaco/src/__jest__/jest.mocks.ts b/packages/kbn-monaco/src/__jest__/jest.mocks.ts index 1df4f9b115002..5f2894541c1a8 100644 --- a/packages/kbn-monaco/src/__jest__/jest.mocks.ts +++ b/packages/kbn-monaco/src/__jest__/jest.mocks.ts @@ -13,7 +13,7 @@ const createMockModel = (ID: string) => { uri: '', id: 'mockModel', value: '', - getModeId: () => ID, + getLanguageId: () => ID, changeContentListeners: [], setValue(newValue) { this.value = newValue; diff --git a/packages/kbn-monaco/src/__jest__/types.ts b/packages/kbn-monaco/src/__jest__/types.ts index 929964c5300fc..71c82cc067857 100644 --- a/packages/kbn-monaco/src/__jest__/types.ts +++ b/packages/kbn-monaco/src/__jest__/types.ts @@ -11,7 +11,7 @@ export interface MockIModel { id: string; value: string; changeContentListeners: Array<() => void>; - getModeId: () => string; + getLanguageId: () => string; setValue: (value: string) => void; getValue: () => string; onDidChangeContent: (handler: () => void) => void; diff --git a/packages/kbn-monaco/src/common/diagnostics_adapter.ts b/packages/kbn-monaco/src/common/diagnostics_adapter.ts index e0169f49e7d0d..5dedce11bf54c 100644 --- a/packages/kbn-monaco/src/common/diagnostics_adapter.ts +++ b/packages/kbn-monaco/src/common/diagnostics_adapter.ts @@ -36,10 +36,10 @@ export class DiagnosticsAdapter { const onModelAdd = (model: monaco.editor.IModel): void => { let handle: any; - if (model.getModeId() === this.langId) { + if (model.getLanguageId() === this.langId) { model.onDidChangeContent(() => { // Do not validate if the language ID has changed - if (model.getModeId() !== this.langId) { + if (model.getLanguageId() !== this.langId) { return; } diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.g4 b/packages/kbn-monaco/src/esql/antlr/esql_lexer.g4 index d22db2818d4e7..bde15b20e0618 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.g4 +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.g4 @@ -185,8 +185,8 @@ EXPR_WS // mode FROM_MODE; FROM_PIPE : PIPE -> type(PIPE), popMode; -FROM_OPENING_BRACKET : OPENING_BRACKET -> type(OPENING_BRACKET), pushMode(FROM_MODE), pushMode(FROM_MODE); -FROM_CLOSING_BRACKET : CLOSING_BRACKET -> type(CLOSING_BRACKET), popMode, popMode; +FROM_OPENING_BRACKET : OPENING_BRACKET -> type(OPENING_BRACKET); +FROM_CLOSING_BRACKET : CLOSING_BRACKET -> type(CLOSING_BRACKET); FROM_COMMA : COMMA -> type(COMMA); FROM_ASSIGN : ASSIGN -> type(ASSIGN); @@ -228,11 +228,15 @@ fragment UNQUOTED_ID_BODY_WITH_PATTERN : (LETTER | DIGIT | UNDERSCORE | ASTERISK) ; -PROJECT_UNQUOTED_IDENTIFIER +UNQUOTED_ID_PATTERN : (LETTER | ASTERISK) UNQUOTED_ID_BODY_WITH_PATTERN* | (UNDERSCORE | ASPERAND) UNQUOTED_ID_BODY_WITH_PATTERN+ ; +PROJECT_UNQUOTED_IDENTIFIER + : UNQUOTED_ID_PATTERN -> type(UNQUOTED_ID_PATTERN) + ; + PROJECT_QUOTED_IDENTIFIER : QUOTED_IDENTIFIER -> type(QUOTED_IDENTIFIER) ; @@ -265,7 +269,7 @@ RENAME_QUOTED_IDENTIFIER // use the unquoted pattern to let the parser invalidate fields with * RENAME_UNQUOTED_IDENTIFIER - : PROJECT_UNQUOTED_IDENTIFIER -> type(PROJECT_UNQUOTED_IDENTIFIER) + : UNQUOTED_ID_PATTERN -> type(UNQUOTED_ID_PATTERN) ; RENAME_LINE_COMMENT @@ -283,19 +287,28 @@ RENAME_WS // | ENRICH ON key WITH fields mode ENRICH_MODE; ENRICH_PIPE : PIPE -> type(PIPE), popMode; +ENRICH_OPENING_BRACKET : OPENING_BRACKET -> type(OPENING_BRACKET), pushMode(SETTING_MODE); ON : O N -> pushMode(ENRICH_FIELD_MODE); WITH : W I T H -> pushMode(ENRICH_FIELD_MODE); -// use the unquoted pattern to let the parser invalidate fields with * -ENRICH_POLICY_UNQUOTED_IDENTIFIER - : FROM_UNQUOTED_IDENTIFIER -> type(FROM_UNQUOTED_IDENTIFIER) +// similar to that of an index +// see https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html#indices-create-api-path-params +fragment ENRICH_POLICY_NAME_BODY + : ~[\\/?"<>| ,#\t\r\n:] + ; +ENRICH_POLICY_NAME + : (LETTER | DIGIT) ENRICH_POLICY_NAME_BODY* ; ENRICH_QUOTED_IDENTIFIER : QUOTED_IDENTIFIER -> type(QUOTED_IDENTIFIER) ; +ENRICH_MODE_UNQUOTED_VALUE + : ENRICH_POLICY_NAME -> type(ENRICH_POLICY_NAME) + ; + ENRICH_LINE_COMMENT : LINE_COMMENT -> channel(HIDDEN) ; @@ -318,7 +331,7 @@ ENRICH_FIELD_DOT: DOT -> type(DOT); ENRICH_FIELD_WITH : WITH -> type(WITH) ; ENRICH_FIELD_UNQUOTED_IDENTIFIER - : PROJECT_UNQUOTED_IDENTIFIER -> type(PROJECT_UNQUOTED_IDENTIFIER) + : UNQUOTED_ID_PATTERN -> type(UNQUOTED_ID_PATTERN) ; ENRICH_FIELD_QUOTED_IDENTIFIER @@ -383,6 +396,22 @@ SHOW_WS : WS -> channel(HIDDEN) ; +mode SETTING_MODE; +SETTING_CLOSING_BRACKET : CLOSING_BRACKET -> type(CLOSING_BRACKET), popMode; +COLON : ':'; +SETTING + : (ASPERAND | DIGIT| DOT | LETTER | UNDERSCORE)+ + ; +SETTING_LINE_COMMENT + : LINE_COMMENT -> channel(HIDDEN) + ; +SETTTING_MULTILINE_COMMENT + : MULTILINE_COMMENT -> channel(HIDDEN) + ; +SETTING_WS + : WS -> channel(HIDDEN) + ; + fragment A : [aA]; // match either an 'a' or 'A' fragment B : [bB]; fragment C : [cC]; diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp b/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp index d2516b469b29d..c484e0b7424a7 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.interp @@ -98,6 +98,12 @@ null null null null +null +':' +null +null +null +null token symbolic names: null @@ -175,7 +181,7 @@ FROM_UNQUOTED_IDENTIFIER FROM_LINE_COMMENT FROM_MULTILINE_COMMENT FROM_WS -PROJECT_UNQUOTED_IDENTIFIER +UNQUOTED_ID_PATTERN PROJECT_LINE_COMMENT PROJECT_MULTILINE_COMMENT PROJECT_WS @@ -185,6 +191,7 @@ RENAME_MULTILINE_COMMENT RENAME_WS ON WITH +ENRICH_POLICY_NAME ENRICH_LINE_COMMENT ENRICH_MULTILINE_COMMENT ENRICH_WS @@ -199,6 +206,11 @@ FUNCTIONS SHOW_LINE_COMMENT SHOW_MULTILINE_COMMENT SHOW_WS +COLON +SETTING +SETTING_LINE_COMMENT +SETTTING_MULTILINE_COMMENT +SETTING_WS rule names: DISSECT @@ -298,6 +310,7 @@ PROJECT_PIPE PROJECT_DOT PROJECT_COMMA UNQUOTED_ID_BODY_WITH_PATTERN +UNQUOTED_ID_PATTERN PROJECT_UNQUOTED_IDENTIFIER PROJECT_QUOTED_IDENTIFIER PROJECT_LINE_COMMENT @@ -314,10 +327,13 @@ RENAME_LINE_COMMENT RENAME_MULTILINE_COMMENT RENAME_WS ENRICH_PIPE +ENRICH_OPENING_BRACKET ON WITH -ENRICH_POLICY_UNQUOTED_IDENTIFIER +ENRICH_POLICY_NAME_BODY +ENRICH_POLICY_NAME ENRICH_QUOTED_IDENTIFIER +ENRICH_MODE_UNQUOTED_VALUE ENRICH_LINE_COMMENT ENRICH_MULTILINE_COMMENT ENRICH_WS @@ -344,6 +360,12 @@ FUNCTIONS SHOW_LINE_COMMENT SHOW_MULTILINE_COMMENT SHOW_WS +SETTING_CLOSING_BRACKET +COLON +SETTING +SETTING_LINE_COMMENT +SETTTING_MULTILINE_COMMENT +SETTING_WS A B C @@ -386,6 +408,7 @@ ENRICH_MODE ENRICH_FIELD_MODE MVEXPAND_MODE SHOW_MODE +SETTING_MODE atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 100, 1196, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 6, 20, 505, 10, 20, 13, 20, 14, 20, 506, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 515, 10, 21, 12, 21, 14, 21, 518, 11, 21, 3, 21, 5, 21, 521, 10, 21, 3, 21, 5, 21, 524, 10, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 533, 10, 22, 12, 22, 14, 22, 536, 11, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 6, 23, 544, 10, 23, 13, 23, 14, 23, 545, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 5, 34, 587, 10, 34, 3, 34, 6, 34, 590, 10, 34, 13, 34, 14, 34, 591, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 5, 37, 601, 10, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 5, 39, 608, 10, 39, 3, 40, 3, 40, 3, 40, 7, 40, 613, 10, 40, 12, 40, 14, 40, 616, 11, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 7, 40, 624, 10, 40, 12, 40, 14, 40, 627, 11, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 634, 10, 40, 3, 40, 5, 40, 637, 10, 40, 5, 40, 639, 10, 40, 3, 41, 6, 41, 642, 10, 41, 13, 41, 14, 41, 643, 3, 42, 6, 42, 647, 10, 42, 13, 42, 14, 42, 648, 3, 42, 3, 42, 7, 42, 653, 10, 42, 12, 42, 14, 42, 656, 11, 42, 3, 42, 3, 42, 6, 42, 660, 10, 42, 13, 42, 14, 42, 661, 3, 42, 6, 42, 665, 10, 42, 13, 42, 14, 42, 666, 3, 42, 3, 42, 7, 42, 671, 10, 42, 12, 42, 14, 42, 674, 11, 42, 5, 42, 676, 10, 42, 3, 42, 3, 42, 3, 42, 3, 42, 6, 42, 682, 10, 42, 13, 42, 14, 42, 683, 3, 42, 3, 42, 5, 42, 688, 10, 42, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 7, 78, 813, 10, 78, 12, 78, 14, 78, 816, 11, 78, 3, 78, 3, 78, 5, 78, 820, 10, 78, 3, 78, 6, 78, 823, 10, 78, 13, 78, 14, 78, 824, 5, 78, 827, 10, 78, 3, 79, 3, 79, 6, 79, 831, 10, 79, 13, 79, 14, 79, 832, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 886, 10, 89, 3, 90, 6, 90, 889, 10, 90, 13, 90, 14, 90, 890, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 5, 98, 926, 10, 98, 3, 99, 3, 99, 5, 99, 930, 10, 99, 3, 99, 7, 99, 933, 10, 99, 12, 99, 14, 99, 936, 11, 99, 3, 99, 3, 99, 5, 99, 940, 10, 99, 3, 99, 6, 99, 943, 10, 99, 13, 99, 14, 99, 944, 5, 99, 947, 10, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 119, 3, 119, 3, 120, 3, 120, 3, 120, 3, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 146, 3, 146, 3, 147, 3, 147, 3, 148, 3, 148, 3, 149, 3, 149, 3, 150, 3, 150, 3, 151, 3, 151, 3, 152, 3, 152, 3, 153, 3, 153, 3, 154, 3, 154, 3, 155, 3, 155, 3, 156, 3, 156, 3, 157, 3, 157, 3, 158, 3, 158, 3, 159, 3, 159, 3, 160, 3, 160, 3, 161, 3, 161, 3, 162, 3, 162, 3, 163, 3, 163, 3, 164, 3, 164, 3, 165, 3, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 168, 3, 168, 3, 169, 3, 169, 3, 170, 3, 170, 4, 534, 625, 2, 2, 171, 12, 2, 3, 14, 2, 4, 16, 2, 5, 18, 2, 6, 20, 2, 7, 22, 2, 8, 24, 2, 9, 26, 2, 10, 28, 2, 11, 30, 2, 12, 32, 2, 13, 34, 2, 14, 36, 2, 15, 38, 2, 16, 40, 2, 17, 42, 2, 18, 44, 2, 19, 46, 2, 20, 48, 2, 21, 50, 2, 22, 52, 2, 23, 54, 2, 24, 56, 2, 2, 58, 2, 2, 60, 2, 25, 62, 2, 26, 64, 2, 27, 66, 2, 28, 68, 2, 2, 70, 2, 2, 72, 2, 2, 74, 2, 2, 76, 2, 2, 78, 2, 2, 80, 2, 2, 82, 2, 2, 84, 2, 2, 86, 2, 2, 88, 2, 29, 90, 2, 30, 92, 2, 31, 94, 2, 32, 96, 2, 33, 98, 2, 34, 100, 2, 35, 102, 2, 36, 104, 2, 37, 106, 2, 38, 108, 2, 39, 110, 2, 40, 112, 2, 41, 114, 2, 42, 116, 2, 43, 118, 2, 44, 120, 2, 45, 122, 2, 46, 124, 2, 47, 126, 2, 48, 128, 2, 49, 130, 2, 50, 132, 2, 51, 134, 2, 52, 136, 2, 53, 138, 2, 54, 140, 2, 55, 142, 2, 56, 144, 2, 57, 146, 2, 58, 148, 2, 59, 150, 2, 60, 152, 2, 61, 154, 2, 62, 156, 2, 63, 158, 2, 64, 160, 2, 65, 162, 2, 66, 164, 2, 67, 166, 2, 68, 168, 2, 69, 170, 2, 70, 172, 2, 71, 174, 2, 2, 176, 2, 2, 178, 2, 2, 180, 2, 2, 182, 2, 2, 184, 2, 72, 186, 2, 2, 188, 2, 73, 190, 2, 2, 192, 2, 74, 194, 2, 75, 196, 2, 76, 198, 2, 2, 200, 2, 2, 202, 2, 2, 204, 2, 2, 206, 2, 77, 208, 2, 2, 210, 2, 78, 212, 2, 79, 214, 2, 80, 216, 2, 2, 218, 2, 2, 220, 2, 2, 222, 2, 2, 224, 2, 81, 226, 2, 2, 228, 2, 2, 230, 2, 82, 232, 2, 83, 234, 2, 84, 236, 2, 2, 238, 2, 85, 240, 2, 86, 242, 2, 2, 244, 2, 2, 246, 2, 87, 248, 2, 88, 250, 2, 89, 252, 2, 2, 254, 2, 2, 256, 2, 2, 258, 2, 2, 260, 2, 2, 262, 2, 2, 264, 2, 2, 266, 2, 90, 268, 2, 91, 270, 2, 92, 272, 2, 2, 274, 2, 2, 276, 2, 2, 278, 2, 2, 280, 2, 93, 282, 2, 94, 284, 2, 95, 286, 2, 2, 288, 2, 96, 290, 2, 97, 292, 2, 98, 294, 2, 99, 296, 2, 100, 298, 2, 2, 300, 2, 2, 302, 2, 2, 304, 2, 2, 306, 2, 2, 308, 2, 2, 310, 2, 2, 312, 2, 2, 314, 2, 2, 316, 2, 2, 318, 2, 2, 320, 2, 2, 322, 2, 2, 324, 2, 2, 326, 2, 2, 328, 2, 2, 330, 2, 2, 332, 2, 2, 334, 2, 2, 336, 2, 2, 338, 2, 2, 340, 2, 2, 342, 2, 2, 344, 2, 2, 346, 2, 2, 348, 2, 2, 12, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 39, 8, 2, 11, 12, 15, 15, 34, 34, 49, 49, 93, 93, 95, 95, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 50, 59, 4, 2, 67, 92, 99, 124, 7, 2, 36, 36, 94, 94, 112, 112, 116, 116, 118, 118, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 3, 2, 98, 98, 12, 2, 11, 12, 15, 15, 34, 34, 46, 46, 49, 49, 63, 63, 93, 93, 95, 95, 98, 98, 126, 126, 4, 2, 44, 44, 49, 49, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 72, 72, 104, 104, 4, 2, 73, 73, 105, 105, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 1192, 2, 12, 3, 2, 2, 2, 2, 14, 3, 2, 2, 2, 2, 16, 3, 2, 2, 2, 2, 18, 3, 2, 2, 2, 2, 20, 3, 2, 2, 2, 2, 22, 3, 2, 2, 2, 2, 24, 3, 2, 2, 2, 2, 26, 3, 2, 2, 2, 2, 28, 3, 2, 2, 2, 2, 30, 3, 2, 2, 2, 2, 32, 3, 2, 2, 2, 2, 34, 3, 2, 2, 2, 2, 36, 3, 2, 2, 2, 2, 38, 3, 2, 2, 2, 2, 40, 3, 2, 2, 2, 2, 42, 3, 2, 2, 2, 2, 44, 3, 2, 2, 2, 2, 46, 3, 2, 2, 2, 2, 48, 3, 2, 2, 2, 2, 50, 3, 2, 2, 2, 2, 52, 3, 2, 2, 2, 2, 54, 3, 2, 2, 2, 3, 56, 3, 2, 2, 2, 3, 58, 3, 2, 2, 2, 3, 60, 3, 2, 2, 2, 3, 62, 3, 2, 2, 2, 3, 64, 3, 2, 2, 2, 4, 66, 3, 2, 2, 2, 4, 88, 3, 2, 2, 2, 4, 90, 3, 2, 2, 2, 4, 92, 3, 2, 2, 2, 4, 94, 3, 2, 2, 2, 4, 96, 3, 2, 2, 2, 4, 98, 3, 2, 2, 2, 4, 100, 3, 2, 2, 2, 4, 102, 3, 2, 2, 2, 4, 104, 3, 2, 2, 2, 4, 106, 3, 2, 2, 2, 4, 108, 3, 2, 2, 2, 4, 110, 3, 2, 2, 2, 4, 112, 3, 2, 2, 2, 4, 114, 3, 2, 2, 2, 4, 116, 3, 2, 2, 2, 4, 118, 3, 2, 2, 2, 4, 120, 3, 2, 2, 2, 4, 122, 3, 2, 2, 2, 4, 124, 3, 2, 2, 2, 4, 126, 3, 2, 2, 2, 4, 128, 3, 2, 2, 2, 4, 130, 3, 2, 2, 2, 4, 132, 3, 2, 2, 2, 4, 134, 3, 2, 2, 2, 4, 136, 3, 2, 2, 2, 4, 138, 3, 2, 2, 2, 4, 140, 3, 2, 2, 2, 4, 142, 3, 2, 2, 2, 4, 144, 3, 2, 2, 2, 4, 146, 3, 2, 2, 2, 4, 148, 3, 2, 2, 2, 4, 150, 3, 2, 2, 2, 4, 152, 3, 2, 2, 2, 4, 154, 3, 2, 2, 2, 4, 156, 3, 2, 2, 2, 4, 158, 3, 2, 2, 2, 4, 160, 3, 2, 2, 2, 4, 162, 3, 2, 2, 2, 4, 164, 3, 2, 2, 2, 4, 166, 3, 2, 2, 2, 4, 168, 3, 2, 2, 2, 4, 170, 3, 2, 2, 2, 4, 172, 3, 2, 2, 2, 5, 174, 3, 2, 2, 2, 5, 176, 3, 2, 2, 2, 5, 178, 3, 2, 2, 2, 5, 180, 3, 2, 2, 2, 5, 182, 3, 2, 2, 2, 5, 184, 3, 2, 2, 2, 5, 188, 3, 2, 2, 2, 5, 190, 3, 2, 2, 2, 5, 192, 3, 2, 2, 2, 5, 194, 3, 2, 2, 2, 5, 196, 3, 2, 2, 2, 6, 198, 3, 2, 2, 2, 6, 200, 3, 2, 2, 2, 6, 202, 3, 2, 2, 2, 6, 206, 3, 2, 2, 2, 6, 208, 3, 2, 2, 2, 6, 210, 3, 2, 2, 2, 6, 212, 3, 2, 2, 2, 6, 214, 3, 2, 2, 2, 7, 216, 3, 2, 2, 2, 7, 218, 3, 2, 2, 2, 7, 220, 3, 2, 2, 2, 7, 222, 3, 2, 2, 2, 7, 224, 3, 2, 2, 2, 7, 226, 3, 2, 2, 2, 7, 228, 3, 2, 2, 2, 7, 230, 3, 2, 2, 2, 7, 232, 3, 2, 2, 2, 7, 234, 3, 2, 2, 2, 8, 236, 3, 2, 2, 2, 8, 238, 3, 2, 2, 2, 8, 240, 3, 2, 2, 2, 8, 242, 3, 2, 2, 2, 8, 244, 3, 2, 2, 2, 8, 246, 3, 2, 2, 2, 8, 248, 3, 2, 2, 2, 8, 250, 3, 2, 2, 2, 9, 252, 3, 2, 2, 2, 9, 254, 3, 2, 2, 2, 9, 256, 3, 2, 2, 2, 9, 258, 3, 2, 2, 2, 9, 260, 3, 2, 2, 2, 9, 262, 3, 2, 2, 2, 9, 264, 3, 2, 2, 2, 9, 266, 3, 2, 2, 2, 9, 268, 3, 2, 2, 2, 9, 270, 3, 2, 2, 2, 10, 272, 3, 2, 2, 2, 10, 274, 3, 2, 2, 2, 10, 276, 3, 2, 2, 2, 10, 278, 3, 2, 2, 2, 10, 280, 3, 2, 2, 2, 10, 282, 3, 2, 2, 2, 10, 284, 3, 2, 2, 2, 11, 286, 3, 2, 2, 2, 11, 288, 3, 2, 2, 2, 11, 290, 3, 2, 2, 2, 11, 292, 3, 2, 2, 2, 11, 294, 3, 2, 2, 2, 11, 296, 3, 2, 2, 2, 12, 350, 3, 2, 2, 2, 14, 360, 3, 2, 2, 2, 16, 367, 3, 2, 2, 2, 18, 376, 3, 2, 2, 2, 20, 383, 3, 2, 2, 2, 22, 393, 3, 2, 2, 2, 24, 400, 3, 2, 2, 2, 26, 407, 3, 2, 2, 2, 28, 421, 3, 2, 2, 2, 30, 428, 3, 2, 2, 2, 32, 436, 3, 2, 2, 2, 34, 448, 3, 2, 2, 2, 36, 458, 3, 2, 2, 2, 38, 467, 3, 2, 2, 2, 40, 473, 3, 2, 2, 2, 42, 480, 3, 2, 2, 2, 44, 487, 3, 2, 2, 2, 46, 495, 3, 2, 2, 2, 48, 504, 3, 2, 2, 2, 50, 510, 3, 2, 2, 2, 52, 527, 3, 2, 2, 2, 54, 543, 3, 2, 2, 2, 56, 549, 3, 2, 2, 2, 58, 554, 3, 2, 2, 2, 60, 559, 3, 2, 2, 2, 62, 563, 3, 2, 2, 2, 64, 567, 3, 2, 2, 2, 66, 571, 3, 2, 2, 2, 68, 575, 3, 2, 2, 2, 70, 577, 3, 2, 2, 2, 72, 579, 3, 2, 2, 2, 74, 582, 3, 2, 2, 2, 76, 584, 3, 2, 2, 2, 78, 593, 3, 2, 2, 2, 80, 595, 3, 2, 2, 2, 82, 600, 3, 2, 2, 2, 84, 602, 3, 2, 2, 2, 86, 607, 3, 2, 2, 2, 88, 638, 3, 2, 2, 2, 90, 641, 3, 2, 2, 2, 92, 687, 3, 2, 2, 2, 94, 689, 3, 2, 2, 2, 96, 692, 3, 2, 2, 2, 98, 696, 3, 2, 2, 2, 100, 700, 3, 2, 2, 2, 102, 702, 3, 2, 2, 2, 104, 704, 3, 2, 2, 2, 106, 709, 3, 2, 2, 2, 108, 711, 3, 2, 2, 2, 110, 717, 3, 2, 2, 2, 112, 723, 3, 2, 2, 2, 114, 728, 3, 2, 2, 2, 116, 730, 3, 2, 2, 2, 118, 733, 3, 2, 2, 2, 120, 736, 3, 2, 2, 2, 122, 741, 3, 2, 2, 2, 124, 745, 3, 2, 2, 2, 126, 750, 3, 2, 2, 2, 128, 756, 3, 2, 2, 2, 130, 759, 3, 2, 2, 2, 132, 761, 3, 2, 2, 2, 134, 767, 3, 2, 2, 2, 136, 769, 3, 2, 2, 2, 138, 774, 3, 2, 2, 2, 140, 777, 3, 2, 2, 2, 142, 780, 3, 2, 2, 2, 144, 782, 3, 2, 2, 2, 146, 785, 3, 2, 2, 2, 148, 787, 3, 2, 2, 2, 150, 790, 3, 2, 2, 2, 152, 792, 3, 2, 2, 2, 154, 794, 3, 2, 2, 2, 156, 796, 3, 2, 2, 2, 158, 798, 3, 2, 2, 2, 160, 800, 3, 2, 2, 2, 162, 805, 3, 2, 2, 2, 164, 826, 3, 2, 2, 2, 166, 828, 3, 2, 2, 2, 168, 836, 3, 2, 2, 2, 170, 840, 3, 2, 2, 2, 172, 844, 3, 2, 2, 2, 174, 848, 3, 2, 2, 2, 176, 853, 3, 2, 2, 2, 178, 859, 3, 2, 2, 2, 180, 865, 3, 2, 2, 2, 182, 869, 3, 2, 2, 2, 184, 873, 3, 2, 2, 2, 186, 885, 3, 2, 2, 2, 188, 888, 3, 2, 2, 2, 190, 892, 3, 2, 2, 2, 192, 896, 3, 2, 2, 2, 194, 900, 3, 2, 2, 2, 196, 904, 3, 2, 2, 2, 198, 908, 3, 2, 2, 2, 200, 913, 3, 2, 2, 2, 202, 917, 3, 2, 2, 2, 204, 925, 3, 2, 2, 2, 206, 946, 3, 2, 2, 2, 208, 948, 3, 2, 2, 2, 210, 952, 3, 2, 2, 2, 212, 956, 3, 2, 2, 2, 214, 960, 3, 2, 2, 2, 216, 964, 3, 2, 2, 2, 218, 969, 3, 2, 2, 2, 220, 973, 3, 2, 2, 2, 222, 977, 3, 2, 2, 2, 224, 981, 3, 2, 2, 2, 226, 984, 3, 2, 2, 2, 228, 988, 3, 2, 2, 2, 230, 992, 3, 2, 2, 2, 232, 996, 3, 2, 2, 2, 234, 1000, 3, 2, 2, 2, 236, 1004, 3, 2, 2, 2, 238, 1009, 3, 2, 2, 2, 240, 1014, 3, 2, 2, 2, 242, 1021, 3, 2, 2, 2, 244, 1025, 3, 2, 2, 2, 246, 1029, 3, 2, 2, 2, 248, 1033, 3, 2, 2, 2, 250, 1037, 3, 2, 2, 2, 252, 1041, 3, 2, 2, 2, 254, 1047, 3, 2, 2, 2, 256, 1051, 3, 2, 2, 2, 258, 1055, 3, 2, 2, 2, 260, 1059, 3, 2, 2, 2, 262, 1063, 3, 2, 2, 2, 264, 1067, 3, 2, 2, 2, 266, 1071, 3, 2, 2, 2, 268, 1075, 3, 2, 2, 2, 270, 1079, 3, 2, 2, 2, 272, 1083, 3, 2, 2, 2, 274, 1088, 3, 2, 2, 2, 276, 1092, 3, 2, 2, 2, 278, 1096, 3, 2, 2, 2, 280, 1100, 3, 2, 2, 2, 282, 1104, 3, 2, 2, 2, 284, 1108, 3, 2, 2, 2, 286, 1112, 3, 2, 2, 2, 288, 1117, 3, 2, 2, 2, 290, 1122, 3, 2, 2, 2, 292, 1132, 3, 2, 2, 2, 294, 1136, 3, 2, 2, 2, 296, 1140, 3, 2, 2, 2, 298, 1144, 3, 2, 2, 2, 300, 1146, 3, 2, 2, 2, 302, 1148, 3, 2, 2, 2, 304, 1150, 3, 2, 2, 2, 306, 1152, 3, 2, 2, 2, 308, 1154, 3, 2, 2, 2, 310, 1156, 3, 2, 2, 2, 312, 1158, 3, 2, 2, 2, 314, 1160, 3, 2, 2, 2, 316, 1162, 3, 2, 2, 2, 318, 1164, 3, 2, 2, 2, 320, 1166, 3, 2, 2, 2, 322, 1168, 3, 2, 2, 2, 324, 1170, 3, 2, 2, 2, 326, 1172, 3, 2, 2, 2, 328, 1174, 3, 2, 2, 2, 330, 1176, 3, 2, 2, 2, 332, 1178, 3, 2, 2, 2, 334, 1180, 3, 2, 2, 2, 336, 1182, 3, 2, 2, 2, 338, 1184, 3, 2, 2, 2, 340, 1186, 3, 2, 2, 2, 342, 1188, 3, 2, 2, 2, 344, 1190, 3, 2, 2, 2, 346, 1192, 3, 2, 2, 2, 348, 1194, 3, 2, 2, 2, 350, 351, 5, 304, 148, 2, 351, 352, 5, 314, 153, 2, 352, 353, 5, 334, 163, 2, 353, 354, 5, 334, 163, 2, 354, 355, 5, 306, 149, 2, 355, 356, 5, 302, 147, 2, 356, 357, 5, 336, 164, 2, 357, 358, 3, 2, 2, 2, 358, 359, 8, 2, 2, 2, 359, 13, 3, 2, 2, 2, 360, 361, 5, 304, 148, 2, 361, 362, 5, 332, 162, 2, 362, 363, 5, 326, 159, 2, 363, 364, 5, 328, 160, 2, 364, 365, 3, 2, 2, 2, 365, 366, 8, 3, 3, 2, 366, 15, 3, 2, 2, 2, 367, 368, 5, 306, 149, 2, 368, 369, 5, 324, 158, 2, 369, 370, 5, 332, 162, 2, 370, 371, 5, 314, 153, 2, 371, 372, 5, 302, 147, 2, 372, 373, 5, 312, 152, 2, 373, 374, 3, 2, 2, 2, 374, 375, 8, 4, 4, 2, 375, 17, 3, 2, 2, 2, 376, 377, 5, 306, 149, 2, 377, 378, 5, 340, 166, 2, 378, 379, 5, 298, 145, 2, 379, 380, 5, 320, 156, 2, 380, 381, 3, 2, 2, 2, 381, 382, 8, 5, 2, 2, 382, 19, 3, 2, 2, 2, 383, 384, 5, 306, 149, 2, 384, 385, 5, 344, 168, 2, 385, 386, 5, 328, 160, 2, 386, 387, 5, 320, 156, 2, 387, 388, 5, 298, 145, 2, 388, 389, 5, 314, 153, 2, 389, 390, 5, 324, 158, 2, 390, 391, 3, 2, 2, 2, 391, 392, 8, 6, 5, 2, 392, 21, 3, 2, 2, 2, 393, 394, 5, 308, 150, 2, 394, 395, 5, 332, 162, 2, 395, 396, 5, 326, 159, 2, 396, 397, 5, 322, 157, 2, 397, 398, 3, 2, 2, 2, 398, 399, 8, 7, 6, 2, 399, 23, 3, 2, 2, 2, 400, 401, 5, 310, 151, 2, 401, 402, 5, 332, 162, 2, 402, 403, 5, 326, 159, 2, 403, 404, 5, 318, 155, 2, 404, 405, 3, 2, 2, 2, 405, 406, 8, 8, 2, 2, 406, 25, 3, 2, 2, 2, 407, 408, 5, 314, 153, 2, 408, 409, 5, 324, 158, 2, 409, 410, 5, 320, 156, 2, 410, 411, 5, 314, 153, 2, 411, 412, 5, 324, 158, 2, 412, 413, 5, 306, 149, 2, 413, 414, 5, 334, 163, 2, 414, 415, 5, 336, 164, 2, 415, 416, 5, 298, 145, 2, 416, 417, 5, 336, 164, 2, 417, 418, 5, 334, 163, 2, 418, 419, 3, 2, 2, 2, 419, 420, 8, 9, 2, 2, 420, 27, 3, 2, 2, 2, 421, 422, 5, 318, 155, 2, 422, 423, 5, 306, 149, 2, 423, 424, 5, 306, 149, 2, 424, 425, 5, 328, 160, 2, 425, 426, 3, 2, 2, 2, 426, 427, 8, 10, 3, 2, 427, 29, 3, 2, 2, 2, 428, 429, 5, 320, 156, 2, 429, 430, 5, 314, 153, 2, 430, 431, 5, 322, 157, 2, 431, 432, 5, 314, 153, 2, 432, 433, 5, 336, 164, 2, 433, 434, 3, 2, 2, 2, 434, 435, 8, 11, 2, 2, 435, 31, 3, 2, 2, 2, 436, 437, 5, 322, 157, 2, 437, 438, 5, 340, 166, 2, 438, 439, 5, 84, 38, 2, 439, 440, 5, 306, 149, 2, 440, 441, 5, 344, 168, 2, 441, 442, 5, 328, 160, 2, 442, 443, 5, 298, 145, 2, 443, 444, 5, 324, 158, 2, 444, 445, 5, 304, 148, 2, 445, 446, 3, 2, 2, 2, 446, 447, 8, 12, 7, 2, 447, 33, 3, 2, 2, 2, 448, 449, 5, 328, 160, 2, 449, 450, 5, 332, 162, 2, 450, 451, 5, 326, 159, 2, 451, 452, 5, 316, 154, 2, 452, 453, 5, 306, 149, 2, 453, 454, 5, 302, 147, 2, 454, 455, 5, 336, 164, 2, 455, 456, 3, 2, 2, 2, 456, 457, 8, 13, 3, 2, 457, 35, 3, 2, 2, 2, 458, 459, 5, 332, 162, 2, 459, 460, 5, 306, 149, 2, 460, 461, 5, 324, 158, 2, 461, 462, 5, 298, 145, 2, 462, 463, 5, 322, 157, 2, 463, 464, 5, 306, 149, 2, 464, 465, 3, 2, 2, 2, 465, 466, 8, 14, 8, 2, 466, 37, 3, 2, 2, 2, 467, 468, 5, 332, 162, 2, 468, 469, 5, 326, 159, 2, 469, 470, 5, 342, 167, 2, 470, 471, 3, 2, 2, 2, 471, 472, 8, 15, 2, 2, 472, 39, 3, 2, 2, 2, 473, 474, 5, 334, 163, 2, 474, 475, 5, 312, 152, 2, 475, 476, 5, 326, 159, 2, 476, 477, 5, 342, 167, 2, 477, 478, 3, 2, 2, 2, 478, 479, 8, 16, 9, 2, 479, 41, 3, 2, 2, 2, 480, 481, 5, 334, 163, 2, 481, 482, 5, 326, 159, 2, 482, 483, 5, 332, 162, 2, 483, 484, 5, 336, 164, 2, 484, 485, 3, 2, 2, 2, 485, 486, 8, 17, 2, 2, 486, 43, 3, 2, 2, 2, 487, 488, 5, 334, 163, 2, 488, 489, 5, 336, 164, 2, 489, 490, 5, 298, 145, 2, 490, 491, 5, 336, 164, 2, 491, 492, 5, 334, 163, 2, 492, 493, 3, 2, 2, 2, 493, 494, 8, 18, 2, 2, 494, 45, 3, 2, 2, 2, 495, 496, 5, 342, 167, 2, 496, 497, 5, 312, 152, 2, 497, 498, 5, 306, 149, 2, 498, 499, 5, 332, 162, 2, 499, 500, 5, 306, 149, 2, 500, 501, 3, 2, 2, 2, 501, 502, 8, 19, 2, 2, 502, 47, 3, 2, 2, 2, 503, 505, 10, 2, 2, 2, 504, 503, 3, 2, 2, 2, 505, 506, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 506, 507, 3, 2, 2, 2, 507, 508, 3, 2, 2, 2, 508, 509, 8, 20, 2, 2, 509, 49, 3, 2, 2, 2, 510, 511, 7, 49, 2, 2, 511, 512, 7, 49, 2, 2, 512, 516, 3, 2, 2, 2, 513, 515, 10, 3, 2, 2, 514, 513, 3, 2, 2, 2, 515, 518, 3, 2, 2, 2, 516, 514, 3, 2, 2, 2, 516, 517, 3, 2, 2, 2, 517, 520, 3, 2, 2, 2, 518, 516, 3, 2, 2, 2, 519, 521, 7, 15, 2, 2, 520, 519, 3, 2, 2, 2, 520, 521, 3, 2, 2, 2, 521, 523, 3, 2, 2, 2, 522, 524, 7, 12, 2, 2, 523, 522, 3, 2, 2, 2, 523, 524, 3, 2, 2, 2, 524, 525, 3, 2, 2, 2, 525, 526, 8, 21, 10, 2, 526, 51, 3, 2, 2, 2, 527, 528, 7, 49, 2, 2, 528, 529, 7, 44, 2, 2, 529, 534, 3, 2, 2, 2, 530, 533, 5, 52, 22, 2, 531, 533, 11, 2, 2, 2, 532, 530, 3, 2, 2, 2, 532, 531, 3, 2, 2, 2, 533, 536, 3, 2, 2, 2, 534, 535, 3, 2, 2, 2, 534, 532, 3, 2, 2, 2, 535, 537, 3, 2, 2, 2, 536, 534, 3, 2, 2, 2, 537, 538, 7, 44, 2, 2, 538, 539, 7, 49, 2, 2, 539, 540, 3, 2, 2, 2, 540, 541, 8, 22, 10, 2, 541, 53, 3, 2, 2, 2, 542, 544, 9, 4, 2, 2, 543, 542, 3, 2, 2, 2, 544, 545, 3, 2, 2, 2, 545, 543, 3, 2, 2, 2, 545, 546, 3, 2, 2, 2, 546, 547, 3, 2, 2, 2, 547, 548, 8, 23, 10, 2, 548, 55, 3, 2, 2, 2, 549, 550, 5, 160, 76, 2, 550, 551, 3, 2, 2, 2, 551, 552, 8, 24, 11, 2, 552, 553, 8, 24, 12, 2, 553, 57, 3, 2, 2, 2, 554, 555, 5, 66, 29, 2, 555, 556, 3, 2, 2, 2, 556, 557, 8, 25, 13, 2, 557, 558, 8, 25, 14, 2, 558, 59, 3, 2, 2, 2, 559, 560, 5, 54, 23, 2, 560, 561, 3, 2, 2, 2, 561, 562, 8, 26, 10, 2, 562, 61, 3, 2, 2, 2, 563, 564, 5, 50, 21, 2, 564, 565, 3, 2, 2, 2, 565, 566, 8, 27, 10, 2, 566, 63, 3, 2, 2, 2, 567, 568, 5, 52, 22, 2, 568, 569, 3, 2, 2, 2, 569, 570, 8, 28, 10, 2, 570, 65, 3, 2, 2, 2, 571, 572, 7, 126, 2, 2, 572, 573, 3, 2, 2, 2, 573, 574, 8, 29, 14, 2, 574, 67, 3, 2, 2, 2, 575, 576, 9, 5, 2, 2, 576, 69, 3, 2, 2, 2, 577, 578, 9, 6, 2, 2, 578, 71, 3, 2, 2, 2, 579, 580, 7, 94, 2, 2, 580, 581, 9, 7, 2, 2, 581, 73, 3, 2, 2, 2, 582, 583, 10, 8, 2, 2, 583, 75, 3, 2, 2, 2, 584, 586, 9, 9, 2, 2, 585, 587, 9, 10, 2, 2, 586, 585, 3, 2, 2, 2, 586, 587, 3, 2, 2, 2, 587, 589, 3, 2, 2, 2, 588, 590, 5, 68, 30, 2, 589, 588, 3, 2, 2, 2, 590, 591, 3, 2, 2, 2, 591, 589, 3, 2, 2, 2, 591, 592, 3, 2, 2, 2, 592, 77, 3, 2, 2, 2, 593, 594, 7, 66, 2, 2, 594, 79, 3, 2, 2, 2, 595, 596, 7, 98, 2, 2, 596, 81, 3, 2, 2, 2, 597, 601, 10, 11, 2, 2, 598, 599, 7, 98, 2, 2, 599, 601, 7, 98, 2, 2, 600, 597, 3, 2, 2, 2, 600, 598, 3, 2, 2, 2, 601, 83, 3, 2, 2, 2, 602, 603, 7, 97, 2, 2, 603, 85, 3, 2, 2, 2, 604, 608, 5, 70, 31, 2, 605, 608, 5, 68, 30, 2, 606, 608, 5, 84, 38, 2, 607, 604, 3, 2, 2, 2, 607, 605, 3, 2, 2, 2, 607, 606, 3, 2, 2, 2, 608, 87, 3, 2, 2, 2, 609, 614, 7, 36, 2, 2, 610, 613, 5, 72, 32, 2, 611, 613, 5, 74, 33, 2, 612, 610, 3, 2, 2, 2, 612, 611, 3, 2, 2, 2, 613, 616, 3, 2, 2, 2, 614, 612, 3, 2, 2, 2, 614, 615, 3, 2, 2, 2, 615, 617, 3, 2, 2, 2, 616, 614, 3, 2, 2, 2, 617, 639, 7, 36, 2, 2, 618, 619, 7, 36, 2, 2, 619, 620, 7, 36, 2, 2, 620, 621, 7, 36, 2, 2, 621, 625, 3, 2, 2, 2, 622, 624, 10, 3, 2, 2, 623, 622, 3, 2, 2, 2, 624, 627, 3, 2, 2, 2, 625, 626, 3, 2, 2, 2, 625, 623, 3, 2, 2, 2, 626, 628, 3, 2, 2, 2, 627, 625, 3, 2, 2, 2, 628, 629, 7, 36, 2, 2, 629, 630, 7, 36, 2, 2, 630, 631, 7, 36, 2, 2, 631, 633, 3, 2, 2, 2, 632, 634, 7, 36, 2, 2, 633, 632, 3, 2, 2, 2, 633, 634, 3, 2, 2, 2, 634, 636, 3, 2, 2, 2, 635, 637, 7, 36, 2, 2, 636, 635, 3, 2, 2, 2, 636, 637, 3, 2, 2, 2, 637, 639, 3, 2, 2, 2, 638, 609, 3, 2, 2, 2, 638, 618, 3, 2, 2, 2, 639, 89, 3, 2, 2, 2, 640, 642, 5, 68, 30, 2, 641, 640, 3, 2, 2, 2, 642, 643, 3, 2, 2, 2, 643, 641, 3, 2, 2, 2, 643, 644, 3, 2, 2, 2, 644, 91, 3, 2, 2, 2, 645, 647, 5, 68, 30, 2, 646, 645, 3, 2, 2, 2, 647, 648, 3, 2, 2, 2, 648, 646, 3, 2, 2, 2, 648, 649, 3, 2, 2, 2, 649, 650, 3, 2, 2, 2, 650, 654, 5, 106, 49, 2, 651, 653, 5, 68, 30, 2, 652, 651, 3, 2, 2, 2, 653, 656, 3, 2, 2, 2, 654, 652, 3, 2, 2, 2, 654, 655, 3, 2, 2, 2, 655, 688, 3, 2, 2, 2, 656, 654, 3, 2, 2, 2, 657, 659, 5, 106, 49, 2, 658, 660, 5, 68, 30, 2, 659, 658, 3, 2, 2, 2, 660, 661, 3, 2, 2, 2, 661, 659, 3, 2, 2, 2, 661, 662, 3, 2, 2, 2, 662, 688, 3, 2, 2, 2, 663, 665, 5, 68, 30, 2, 664, 663, 3, 2, 2, 2, 665, 666, 3, 2, 2, 2, 666, 664, 3, 2, 2, 2, 666, 667, 3, 2, 2, 2, 667, 675, 3, 2, 2, 2, 668, 672, 5, 106, 49, 2, 669, 671, 5, 68, 30, 2, 670, 669, 3, 2, 2, 2, 671, 674, 3, 2, 2, 2, 672, 670, 3, 2, 2, 2, 672, 673, 3, 2, 2, 2, 673, 676, 3, 2, 2, 2, 674, 672, 3, 2, 2, 2, 675, 668, 3, 2, 2, 2, 675, 676, 3, 2, 2, 2, 676, 677, 3, 2, 2, 2, 677, 678, 5, 76, 34, 2, 678, 688, 3, 2, 2, 2, 679, 681, 5, 106, 49, 2, 680, 682, 5, 68, 30, 2, 681, 680, 3, 2, 2, 2, 682, 683, 3, 2, 2, 2, 683, 681, 3, 2, 2, 2, 683, 684, 3, 2, 2, 2, 684, 685, 3, 2, 2, 2, 685, 686, 5, 76, 34, 2, 686, 688, 3, 2, 2, 2, 687, 646, 3, 2, 2, 2, 687, 657, 3, 2, 2, 2, 687, 664, 3, 2, 2, 2, 687, 679, 3, 2, 2, 2, 688, 93, 3, 2, 2, 2, 689, 690, 5, 300, 146, 2, 690, 691, 5, 346, 169, 2, 691, 95, 3, 2, 2, 2, 692, 693, 5, 298, 145, 2, 693, 694, 5, 324, 158, 2, 694, 695, 5, 304, 148, 2, 695, 97, 3, 2, 2, 2, 696, 697, 5, 298, 145, 2, 697, 698, 5, 334, 163, 2, 698, 699, 5, 302, 147, 2, 699, 99, 3, 2, 2, 2, 700, 701, 7, 63, 2, 2, 701, 101, 3, 2, 2, 2, 702, 703, 7, 46, 2, 2, 703, 103, 3, 2, 2, 2, 704, 705, 5, 304, 148, 2, 705, 706, 5, 306, 149, 2, 706, 707, 5, 334, 163, 2, 707, 708, 5, 302, 147, 2, 708, 105, 3, 2, 2, 2, 709, 710, 7, 48, 2, 2, 710, 107, 3, 2, 2, 2, 711, 712, 5, 308, 150, 2, 712, 713, 5, 298, 145, 2, 713, 714, 5, 320, 156, 2, 714, 715, 5, 334, 163, 2, 715, 716, 5, 306, 149, 2, 716, 109, 3, 2, 2, 2, 717, 718, 5, 308, 150, 2, 718, 719, 5, 314, 153, 2, 719, 720, 5, 332, 162, 2, 720, 721, 5, 334, 163, 2, 721, 722, 5, 336, 164, 2, 722, 111, 3, 2, 2, 2, 723, 724, 5, 320, 156, 2, 724, 725, 5, 298, 145, 2, 725, 726, 5, 334, 163, 2, 726, 727, 5, 336, 164, 2, 727, 113, 3, 2, 2, 2, 728, 729, 7, 42, 2, 2, 729, 115, 3, 2, 2, 2, 730, 731, 5, 314, 153, 2, 731, 732, 5, 324, 158, 2, 732, 117, 3, 2, 2, 2, 733, 734, 5, 314, 153, 2, 734, 735, 5, 334, 163, 2, 735, 119, 3, 2, 2, 2, 736, 737, 5, 320, 156, 2, 737, 738, 5, 314, 153, 2, 738, 739, 5, 318, 155, 2, 739, 740, 5, 306, 149, 2, 740, 121, 3, 2, 2, 2, 741, 742, 5, 324, 158, 2, 742, 743, 5, 326, 159, 2, 743, 744, 5, 336, 164, 2, 744, 123, 3, 2, 2, 2, 745, 746, 5, 324, 158, 2, 746, 747, 5, 338, 165, 2, 747, 748, 5, 320, 156, 2, 748, 749, 5, 320, 156, 2, 749, 125, 3, 2, 2, 2, 750, 751, 5, 324, 158, 2, 751, 752, 5, 338, 165, 2, 752, 753, 5, 320, 156, 2, 753, 754, 5, 320, 156, 2, 754, 755, 5, 334, 163, 2, 755, 127, 3, 2, 2, 2, 756, 757, 5, 326, 159, 2, 757, 758, 5, 332, 162, 2, 758, 129, 3, 2, 2, 2, 759, 760, 7, 65, 2, 2, 760, 131, 3, 2, 2, 2, 761, 762, 5, 332, 162, 2, 762, 763, 5, 320, 156, 2, 763, 764, 5, 314, 153, 2, 764, 765, 5, 318, 155, 2, 765, 766, 5, 306, 149, 2, 766, 133, 3, 2, 2, 2, 767, 768, 7, 43, 2, 2, 768, 135, 3, 2, 2, 2, 769, 770, 5, 336, 164, 2, 770, 771, 5, 332, 162, 2, 771, 772, 5, 338, 165, 2, 772, 773, 5, 306, 149, 2, 773, 137, 3, 2, 2, 2, 774, 775, 7, 63, 2, 2, 775, 776, 7, 63, 2, 2, 776, 139, 3, 2, 2, 2, 777, 778, 7, 35, 2, 2, 778, 779, 7, 63, 2, 2, 779, 141, 3, 2, 2, 2, 780, 781, 7, 62, 2, 2, 781, 143, 3, 2, 2, 2, 782, 783, 7, 62, 2, 2, 783, 784, 7, 63, 2, 2, 784, 145, 3, 2, 2, 2, 785, 786, 7, 64, 2, 2, 786, 147, 3, 2, 2, 2, 787, 788, 7, 64, 2, 2, 788, 789, 7, 63, 2, 2, 789, 149, 3, 2, 2, 2, 790, 791, 7, 45, 2, 2, 791, 151, 3, 2, 2, 2, 792, 793, 7, 47, 2, 2, 793, 153, 3, 2, 2, 2, 794, 795, 7, 44, 2, 2, 795, 155, 3, 2, 2, 2, 796, 797, 7, 49, 2, 2, 797, 157, 3, 2, 2, 2, 798, 799, 7, 39, 2, 2, 799, 159, 3, 2, 2, 2, 800, 801, 7, 93, 2, 2, 801, 802, 3, 2, 2, 2, 802, 803, 8, 76, 2, 2, 803, 804, 8, 76, 2, 2, 804, 161, 3, 2, 2, 2, 805, 806, 7, 95, 2, 2, 806, 807, 3, 2, 2, 2, 807, 808, 8, 77, 14, 2, 808, 809, 8, 77, 14, 2, 809, 163, 3, 2, 2, 2, 810, 814, 5, 70, 31, 2, 811, 813, 5, 86, 39, 2, 812, 811, 3, 2, 2, 2, 813, 816, 3, 2, 2, 2, 814, 812, 3, 2, 2, 2, 814, 815, 3, 2, 2, 2, 815, 827, 3, 2, 2, 2, 816, 814, 3, 2, 2, 2, 817, 820, 5, 84, 38, 2, 818, 820, 5, 78, 35, 2, 819, 817, 3, 2, 2, 2, 819, 818, 3, 2, 2, 2, 820, 822, 3, 2, 2, 2, 821, 823, 5, 86, 39, 2, 822, 821, 3, 2, 2, 2, 823, 824, 3, 2, 2, 2, 824, 822, 3, 2, 2, 2, 824, 825, 3, 2, 2, 2, 825, 827, 3, 2, 2, 2, 826, 810, 3, 2, 2, 2, 826, 819, 3, 2, 2, 2, 827, 165, 3, 2, 2, 2, 828, 830, 5, 80, 36, 2, 829, 831, 5, 82, 37, 2, 830, 829, 3, 2, 2, 2, 831, 832, 3, 2, 2, 2, 832, 830, 3, 2, 2, 2, 832, 833, 3, 2, 2, 2, 833, 834, 3, 2, 2, 2, 834, 835, 5, 80, 36, 2, 835, 167, 3, 2, 2, 2, 836, 837, 5, 50, 21, 2, 837, 838, 3, 2, 2, 2, 838, 839, 8, 80, 10, 2, 839, 169, 3, 2, 2, 2, 840, 841, 5, 52, 22, 2, 841, 842, 3, 2, 2, 2, 842, 843, 8, 81, 10, 2, 843, 171, 3, 2, 2, 2, 844, 845, 5, 54, 23, 2, 845, 846, 3, 2, 2, 2, 846, 847, 8, 82, 10, 2, 847, 173, 3, 2, 2, 2, 848, 849, 5, 66, 29, 2, 849, 850, 3, 2, 2, 2, 850, 851, 8, 83, 13, 2, 851, 852, 8, 83, 14, 2, 852, 175, 3, 2, 2, 2, 853, 854, 5, 160, 76, 2, 854, 855, 3, 2, 2, 2, 855, 856, 8, 84, 11, 2, 856, 857, 8, 84, 6, 2, 857, 858, 8, 84, 6, 2, 858, 177, 3, 2, 2, 2, 859, 860, 5, 162, 77, 2, 860, 861, 3, 2, 2, 2, 861, 862, 8, 85, 15, 2, 862, 863, 8, 85, 14, 2, 863, 864, 8, 85, 14, 2, 864, 179, 3, 2, 2, 2, 865, 866, 5, 102, 47, 2, 866, 867, 3, 2, 2, 2, 867, 868, 8, 86, 16, 2, 868, 181, 3, 2, 2, 2, 869, 870, 5, 100, 46, 2, 870, 871, 3, 2, 2, 2, 871, 872, 8, 87, 17, 2, 872, 183, 3, 2, 2, 2, 873, 874, 5, 322, 157, 2, 874, 875, 5, 306, 149, 2, 875, 876, 5, 336, 164, 2, 876, 877, 5, 298, 145, 2, 877, 878, 5, 304, 148, 2, 878, 879, 5, 298, 145, 2, 879, 880, 5, 336, 164, 2, 880, 881, 5, 298, 145, 2, 881, 185, 3, 2, 2, 2, 882, 886, 10, 12, 2, 2, 883, 884, 7, 49, 2, 2, 884, 886, 10, 13, 2, 2, 885, 882, 3, 2, 2, 2, 885, 883, 3, 2, 2, 2, 886, 187, 3, 2, 2, 2, 887, 889, 5, 186, 89, 2, 888, 887, 3, 2, 2, 2, 889, 890, 3, 2, 2, 2, 890, 888, 3, 2, 2, 2, 890, 891, 3, 2, 2, 2, 891, 189, 3, 2, 2, 2, 892, 893, 5, 166, 79, 2, 893, 894, 3, 2, 2, 2, 894, 895, 8, 91, 18, 2, 895, 191, 3, 2, 2, 2, 896, 897, 5, 50, 21, 2, 897, 898, 3, 2, 2, 2, 898, 899, 8, 92, 10, 2, 899, 193, 3, 2, 2, 2, 900, 901, 5, 52, 22, 2, 901, 902, 3, 2, 2, 2, 902, 903, 8, 93, 10, 2, 903, 195, 3, 2, 2, 2, 904, 905, 5, 54, 23, 2, 905, 906, 3, 2, 2, 2, 906, 907, 8, 94, 10, 2, 907, 197, 3, 2, 2, 2, 908, 909, 5, 66, 29, 2, 909, 910, 3, 2, 2, 2, 910, 911, 8, 95, 13, 2, 911, 912, 8, 95, 14, 2, 912, 199, 3, 2, 2, 2, 913, 914, 5, 106, 49, 2, 914, 915, 3, 2, 2, 2, 915, 916, 8, 96, 19, 2, 916, 201, 3, 2, 2, 2, 917, 918, 5, 102, 47, 2, 918, 919, 3, 2, 2, 2, 919, 920, 8, 97, 16, 2, 920, 203, 3, 2, 2, 2, 921, 926, 5, 70, 31, 2, 922, 926, 5, 68, 30, 2, 923, 926, 5, 84, 38, 2, 924, 926, 5, 154, 73, 2, 925, 921, 3, 2, 2, 2, 925, 922, 3, 2, 2, 2, 925, 923, 3, 2, 2, 2, 925, 924, 3, 2, 2, 2, 926, 205, 3, 2, 2, 2, 927, 930, 5, 70, 31, 2, 928, 930, 5, 154, 73, 2, 929, 927, 3, 2, 2, 2, 929, 928, 3, 2, 2, 2, 930, 934, 3, 2, 2, 2, 931, 933, 5, 204, 98, 2, 932, 931, 3, 2, 2, 2, 933, 936, 3, 2, 2, 2, 934, 932, 3, 2, 2, 2, 934, 935, 3, 2, 2, 2, 935, 947, 3, 2, 2, 2, 936, 934, 3, 2, 2, 2, 937, 940, 5, 84, 38, 2, 938, 940, 5, 78, 35, 2, 939, 937, 3, 2, 2, 2, 939, 938, 3, 2, 2, 2, 940, 942, 3, 2, 2, 2, 941, 943, 5, 204, 98, 2, 942, 941, 3, 2, 2, 2, 943, 944, 3, 2, 2, 2, 944, 942, 3, 2, 2, 2, 944, 945, 3, 2, 2, 2, 945, 947, 3, 2, 2, 2, 946, 929, 3, 2, 2, 2, 946, 939, 3, 2, 2, 2, 947, 207, 3, 2, 2, 2, 948, 949, 5, 166, 79, 2, 949, 950, 3, 2, 2, 2, 950, 951, 8, 100, 18, 2, 951, 209, 3, 2, 2, 2, 952, 953, 5, 50, 21, 2, 953, 954, 3, 2, 2, 2, 954, 955, 8, 101, 10, 2, 955, 211, 3, 2, 2, 2, 956, 957, 5, 52, 22, 2, 957, 958, 3, 2, 2, 2, 958, 959, 8, 102, 10, 2, 959, 213, 3, 2, 2, 2, 960, 961, 5, 54, 23, 2, 961, 962, 3, 2, 2, 2, 962, 963, 8, 103, 10, 2, 963, 215, 3, 2, 2, 2, 964, 965, 5, 66, 29, 2, 965, 966, 3, 2, 2, 2, 966, 967, 8, 104, 13, 2, 967, 968, 8, 104, 14, 2, 968, 217, 3, 2, 2, 2, 969, 970, 5, 100, 46, 2, 970, 971, 3, 2, 2, 2, 971, 972, 8, 105, 17, 2, 972, 219, 3, 2, 2, 2, 973, 974, 5, 102, 47, 2, 974, 975, 3, 2, 2, 2, 975, 976, 8, 106, 16, 2, 976, 221, 3, 2, 2, 2, 977, 978, 5, 106, 49, 2, 978, 979, 3, 2, 2, 2, 979, 980, 8, 107, 19, 2, 980, 223, 3, 2, 2, 2, 981, 982, 5, 298, 145, 2, 982, 983, 5, 334, 163, 2, 983, 225, 3, 2, 2, 2, 984, 985, 5, 166, 79, 2, 985, 986, 3, 2, 2, 2, 986, 987, 8, 109, 18, 2, 987, 227, 3, 2, 2, 2, 988, 989, 5, 206, 99, 2, 989, 990, 3, 2, 2, 2, 990, 991, 8, 110, 20, 2, 991, 229, 3, 2, 2, 2, 992, 993, 5, 50, 21, 2, 993, 994, 3, 2, 2, 2, 994, 995, 8, 111, 10, 2, 995, 231, 3, 2, 2, 2, 996, 997, 5, 52, 22, 2, 997, 998, 3, 2, 2, 2, 998, 999, 8, 112, 10, 2, 999, 233, 3, 2, 2, 2, 1000, 1001, 5, 54, 23, 2, 1001, 1002, 3, 2, 2, 2, 1002, 1003, 8, 113, 10, 2, 1003, 235, 3, 2, 2, 2, 1004, 1005, 5, 66, 29, 2, 1005, 1006, 3, 2, 2, 2, 1006, 1007, 8, 114, 13, 2, 1007, 1008, 8, 114, 14, 2, 1008, 237, 3, 2, 2, 2, 1009, 1010, 5, 326, 159, 2, 1010, 1011, 5, 324, 158, 2, 1011, 1012, 3, 2, 2, 2, 1012, 1013, 8, 115, 21, 2, 1013, 239, 3, 2, 2, 2, 1014, 1015, 5, 342, 167, 2, 1015, 1016, 5, 314, 153, 2, 1016, 1017, 5, 336, 164, 2, 1017, 1018, 5, 312, 152, 2, 1018, 1019, 3, 2, 2, 2, 1019, 1020, 8, 116, 21, 2, 1020, 241, 3, 2, 2, 2, 1021, 1022, 5, 188, 90, 2, 1022, 1023, 3, 2, 2, 2, 1023, 1024, 8, 117, 22, 2, 1024, 243, 3, 2, 2, 2, 1025, 1026, 5, 166, 79, 2, 1026, 1027, 3, 2, 2, 2, 1027, 1028, 8, 118, 18, 2, 1028, 245, 3, 2, 2, 2, 1029, 1030, 5, 50, 21, 2, 1030, 1031, 3, 2, 2, 2, 1031, 1032, 8, 119, 10, 2, 1032, 247, 3, 2, 2, 2, 1033, 1034, 5, 52, 22, 2, 1034, 1035, 3, 2, 2, 2, 1035, 1036, 8, 120, 10, 2, 1036, 249, 3, 2, 2, 2, 1037, 1038, 5, 54, 23, 2, 1038, 1039, 3, 2, 2, 2, 1039, 1040, 8, 121, 10, 2, 1040, 251, 3, 2, 2, 2, 1041, 1042, 5, 66, 29, 2, 1042, 1043, 3, 2, 2, 2, 1043, 1044, 8, 122, 13, 2, 1044, 1045, 8, 122, 14, 2, 1045, 1046, 8, 122, 14, 2, 1046, 253, 3, 2, 2, 2, 1047, 1048, 5, 100, 46, 2, 1048, 1049, 3, 2, 2, 2, 1049, 1050, 8, 123, 17, 2, 1050, 255, 3, 2, 2, 2, 1051, 1052, 5, 102, 47, 2, 1052, 1053, 3, 2, 2, 2, 1053, 1054, 8, 124, 16, 2, 1054, 257, 3, 2, 2, 2, 1055, 1056, 5, 106, 49, 2, 1056, 1057, 3, 2, 2, 2, 1057, 1058, 8, 125, 19, 2, 1058, 259, 3, 2, 2, 2, 1059, 1060, 5, 240, 116, 2, 1060, 1061, 3, 2, 2, 2, 1061, 1062, 8, 126, 23, 2, 1062, 261, 3, 2, 2, 2, 1063, 1064, 5, 206, 99, 2, 1064, 1065, 3, 2, 2, 2, 1065, 1066, 8, 127, 20, 2, 1066, 263, 3, 2, 2, 2, 1067, 1068, 5, 166, 79, 2, 1068, 1069, 3, 2, 2, 2, 1069, 1070, 8, 128, 18, 2, 1070, 265, 3, 2, 2, 2, 1071, 1072, 5, 50, 21, 2, 1072, 1073, 3, 2, 2, 2, 1073, 1074, 8, 129, 10, 2, 1074, 267, 3, 2, 2, 2, 1075, 1076, 5, 52, 22, 2, 1076, 1077, 3, 2, 2, 2, 1077, 1078, 8, 130, 10, 2, 1078, 269, 3, 2, 2, 2, 1079, 1080, 5, 54, 23, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1082, 8, 131, 10, 2, 1082, 271, 3, 2, 2, 2, 1083, 1084, 5, 66, 29, 2, 1084, 1085, 3, 2, 2, 2, 1085, 1086, 8, 132, 13, 2, 1086, 1087, 8, 132, 14, 2, 1087, 273, 3, 2, 2, 2, 1088, 1089, 5, 106, 49, 2, 1089, 1090, 3, 2, 2, 2, 1090, 1091, 8, 133, 19, 2, 1091, 275, 3, 2, 2, 2, 1092, 1093, 5, 166, 79, 2, 1093, 1094, 3, 2, 2, 2, 1094, 1095, 8, 134, 18, 2, 1095, 277, 3, 2, 2, 2, 1096, 1097, 5, 164, 78, 2, 1097, 1098, 3, 2, 2, 2, 1098, 1099, 8, 135, 24, 2, 1099, 279, 3, 2, 2, 2, 1100, 1101, 5, 50, 21, 2, 1101, 1102, 3, 2, 2, 2, 1102, 1103, 8, 136, 10, 2, 1103, 281, 3, 2, 2, 2, 1104, 1105, 5, 52, 22, 2, 1105, 1106, 3, 2, 2, 2, 1106, 1107, 8, 137, 10, 2, 1107, 283, 3, 2, 2, 2, 1108, 1109, 5, 54, 23, 2, 1109, 1110, 3, 2, 2, 2, 1110, 1111, 8, 138, 10, 2, 1111, 285, 3, 2, 2, 2, 1112, 1113, 5, 66, 29, 2, 1113, 1114, 3, 2, 2, 2, 1114, 1115, 8, 139, 13, 2, 1115, 1116, 8, 139, 14, 2, 1116, 287, 3, 2, 2, 2, 1117, 1118, 5, 314, 153, 2, 1118, 1119, 5, 324, 158, 2, 1119, 1120, 5, 308, 150, 2, 1120, 1121, 5, 326, 159, 2, 1121, 289, 3, 2, 2, 2, 1122, 1123, 5, 308, 150, 2, 1123, 1124, 5, 338, 165, 2, 1124, 1125, 5, 324, 158, 2, 1125, 1126, 5, 302, 147, 2, 1126, 1127, 5, 336, 164, 2, 1127, 1128, 5, 314, 153, 2, 1128, 1129, 5, 326, 159, 2, 1129, 1130, 5, 324, 158, 2, 1130, 1131, 5, 334, 163, 2, 1131, 291, 3, 2, 2, 2, 1132, 1133, 5, 50, 21, 2, 1133, 1134, 3, 2, 2, 2, 1134, 1135, 8, 142, 10, 2, 1135, 293, 3, 2, 2, 2, 1136, 1137, 5, 52, 22, 2, 1137, 1138, 3, 2, 2, 2, 1138, 1139, 8, 143, 10, 2, 1139, 295, 3, 2, 2, 2, 1140, 1141, 5, 54, 23, 2, 1141, 1142, 3, 2, 2, 2, 1142, 1143, 8, 144, 10, 2, 1143, 297, 3, 2, 2, 2, 1144, 1145, 9, 14, 2, 2, 1145, 299, 3, 2, 2, 2, 1146, 1147, 9, 15, 2, 2, 1147, 301, 3, 2, 2, 2, 1148, 1149, 9, 16, 2, 2, 1149, 303, 3, 2, 2, 2, 1150, 1151, 9, 17, 2, 2, 1151, 305, 3, 2, 2, 2, 1152, 1153, 9, 9, 2, 2, 1153, 307, 3, 2, 2, 2, 1154, 1155, 9, 18, 2, 2, 1155, 309, 3, 2, 2, 2, 1156, 1157, 9, 19, 2, 2, 1157, 311, 3, 2, 2, 2, 1158, 1159, 9, 20, 2, 2, 1159, 313, 3, 2, 2, 2, 1160, 1161, 9, 21, 2, 2, 1161, 315, 3, 2, 2, 2, 1162, 1163, 9, 22, 2, 2, 1163, 317, 3, 2, 2, 2, 1164, 1165, 9, 23, 2, 2, 1165, 319, 3, 2, 2, 2, 1166, 1167, 9, 24, 2, 2, 1167, 321, 3, 2, 2, 2, 1168, 1169, 9, 25, 2, 2, 1169, 323, 3, 2, 2, 2, 1170, 1171, 9, 26, 2, 2, 1171, 325, 3, 2, 2, 2, 1172, 1173, 9, 27, 2, 2, 1173, 327, 3, 2, 2, 2, 1174, 1175, 9, 28, 2, 2, 1175, 329, 3, 2, 2, 2, 1176, 1177, 9, 29, 2, 2, 1177, 331, 3, 2, 2, 2, 1178, 1179, 9, 30, 2, 2, 1179, 333, 3, 2, 2, 2, 1180, 1181, 9, 31, 2, 2, 1181, 335, 3, 2, 2, 2, 1182, 1183, 9, 32, 2, 2, 1183, 337, 3, 2, 2, 2, 1184, 1185, 9, 33, 2, 2, 1185, 339, 3, 2, 2, 2, 1186, 1187, 9, 34, 2, 2, 1187, 341, 3, 2, 2, 2, 1188, 1189, 9, 35, 2, 2, 1189, 343, 3, 2, 2, 2, 1190, 1191, 9, 36, 2, 2, 1191, 345, 3, 2, 2, 2, 1192, 1193, 9, 37, 2, 2, 1193, 347, 3, 2, 2, 2, 1194, 1195, 9, 38, 2, 2, 1195, 349, 3, 2, 2, 2, 51, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 506, 516, 520, 523, 532, 534, 545, 586, 591, 600, 607, 612, 614, 625, 633, 636, 638, 643, 648, 654, 661, 666, 672, 675, 683, 687, 814, 819, 824, 826, 832, 885, 890, 925, 929, 934, 939, 944, 946, 25, 7, 4, 2, 7, 6, 2, 7, 8, 2, 7, 3, 2, 7, 5, 2, 7, 10, 2, 7, 7, 2, 7, 11, 2, 2, 3, 2, 9, 65, 2, 7, 2, 2, 9, 28, 2, 6, 2, 2, 9, 66, 2, 9, 36, 2, 9, 35, 2, 9, 68, 2, 9, 38, 2, 9, 77, 2, 7, 9, 2, 9, 73, 2, 9, 86, 2, 9, 67, 2] \ No newline at end of file +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 2, 106, 1262, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 8, 1, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 4, 51, 9, 51, 4, 52, 9, 52, 4, 53, 9, 53, 4, 54, 9, 54, 4, 55, 9, 55, 4, 56, 9, 56, 4, 57, 9, 57, 4, 58, 9, 58, 4, 59, 9, 59, 4, 60, 9, 60, 4, 61, 9, 61, 4, 62, 9, 62, 4, 63, 9, 63, 4, 64, 9, 64, 4, 65, 9, 65, 4, 66, 9, 66, 4, 67, 9, 67, 4, 68, 9, 68, 4, 69, 9, 69, 4, 70, 9, 70, 4, 71, 9, 71, 4, 72, 9, 72, 4, 73, 9, 73, 4, 74, 9, 74, 4, 75, 9, 75, 4, 76, 9, 76, 4, 77, 9, 77, 4, 78, 9, 78, 4, 79, 9, 79, 4, 80, 9, 80, 4, 81, 9, 81, 4, 82, 9, 82, 4, 83, 9, 83, 4, 84, 9, 84, 4, 85, 9, 85, 4, 86, 9, 86, 4, 87, 9, 87, 4, 88, 9, 88, 4, 89, 9, 89, 4, 90, 9, 90, 4, 91, 9, 91, 4, 92, 9, 92, 4, 93, 9, 93, 4, 94, 9, 94, 4, 95, 9, 95, 4, 96, 9, 96, 4, 97, 9, 97, 4, 98, 9, 98, 4, 99, 9, 99, 4, 100, 9, 100, 4, 101, 9, 101, 4, 102, 9, 102, 4, 103, 9, 103, 4, 104, 9, 104, 4, 105, 9, 105, 4, 106, 9, 106, 4, 107, 9, 107, 4, 108, 9, 108, 4, 109, 9, 109, 4, 110, 9, 110, 4, 111, 9, 111, 4, 112, 9, 112, 4, 113, 9, 113, 4, 114, 9, 114, 4, 115, 9, 115, 4, 116, 9, 116, 4, 117, 9, 117, 4, 118, 9, 118, 4, 119, 9, 119, 4, 120, 9, 120, 4, 121, 9, 121, 4, 122, 9, 122, 4, 123, 9, 123, 4, 124, 9, 124, 4, 125, 9, 125, 4, 126, 9, 126, 4, 127, 9, 127, 4, 128, 9, 128, 4, 129, 9, 129, 4, 130, 9, 130, 4, 131, 9, 131, 4, 132, 9, 132, 4, 133, 9, 133, 4, 134, 9, 134, 4, 135, 9, 135, 4, 136, 9, 136, 4, 137, 9, 137, 4, 138, 9, 138, 4, 139, 9, 139, 4, 140, 9, 140, 4, 141, 9, 141, 4, 142, 9, 142, 4, 143, 9, 143, 4, 144, 9, 144, 4, 145, 9, 145, 4, 146, 9, 146, 4, 147, 9, 147, 4, 148, 9, 148, 4, 149, 9, 149, 4, 150, 9, 150, 4, 151, 9, 151, 4, 152, 9, 152, 4, 153, 9, 153, 4, 154, 9, 154, 4, 155, 9, 155, 4, 156, 9, 156, 4, 157, 9, 157, 4, 158, 9, 158, 4, 159, 9, 159, 4, 160, 9, 160, 4, 161, 9, 161, 4, 162, 9, 162, 4, 163, 9, 163, 4, 164, 9, 164, 4, 165, 9, 165, 4, 166, 9, 166, 4, 167, 9, 167, 4, 168, 9, 168, 4, 169, 9, 169, 4, 170, 9, 170, 4, 171, 9, 171, 4, 172, 9, 172, 4, 173, 9, 173, 4, 174, 9, 174, 4, 175, 9, 175, 4, 176, 9, 176, 4, 177, 9, 177, 4, 178, 9, 178, 4, 179, 9, 179, 4, 180, 9, 180, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 19, 3, 20, 6, 20, 526, 10, 20, 13, 20, 14, 20, 527, 3, 20, 3, 20, 3, 21, 3, 21, 3, 21, 3, 21, 7, 21, 536, 10, 21, 12, 21, 14, 21, 539, 11, 21, 3, 21, 5, 21, 542, 10, 21, 3, 21, 5, 21, 545, 10, 21, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 7, 22, 554, 10, 22, 12, 22, 14, 22, 557, 11, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 22, 3, 23, 6, 23, 565, 10, 23, 13, 23, 14, 23, 566, 3, 23, 3, 23, 3, 24, 3, 24, 3, 24, 3, 24, 3, 24, 3, 25, 3, 25, 3, 25, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 3, 30, 3, 30, 3, 31, 3, 31, 3, 32, 3, 32, 3, 32, 3, 33, 3, 33, 3, 34, 3, 34, 5, 34, 608, 10, 34, 3, 34, 6, 34, 611, 10, 34, 13, 34, 14, 34, 612, 3, 35, 3, 35, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 5, 37, 622, 10, 37, 3, 38, 3, 38, 3, 39, 3, 39, 3, 39, 5, 39, 629, 10, 39, 3, 40, 3, 40, 3, 40, 7, 40, 634, 10, 40, 12, 40, 14, 40, 637, 11, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 7, 40, 645, 10, 40, 12, 40, 14, 40, 648, 11, 40, 3, 40, 3, 40, 3, 40, 3, 40, 3, 40, 5, 40, 655, 10, 40, 3, 40, 5, 40, 658, 10, 40, 5, 40, 660, 10, 40, 3, 41, 6, 41, 663, 10, 41, 13, 41, 14, 41, 664, 3, 42, 6, 42, 668, 10, 42, 13, 42, 14, 42, 669, 3, 42, 3, 42, 7, 42, 674, 10, 42, 12, 42, 14, 42, 677, 11, 42, 3, 42, 3, 42, 6, 42, 681, 10, 42, 13, 42, 14, 42, 682, 3, 42, 6, 42, 686, 10, 42, 13, 42, 14, 42, 687, 3, 42, 3, 42, 7, 42, 692, 10, 42, 12, 42, 14, 42, 695, 11, 42, 5, 42, 697, 10, 42, 3, 42, 3, 42, 3, 42, 3, 42, 6, 42, 703, 10, 42, 13, 42, 14, 42, 704, 3, 42, 3, 42, 5, 42, 709, 10, 42, 3, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 3, 48, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 51, 3, 52, 3, 52, 3, 52, 3, 52, 3, 52, 3, 53, 3, 53, 3, 54, 3, 54, 3, 54, 3, 55, 3, 55, 3, 55, 3, 56, 3, 56, 3, 56, 3, 56, 3, 56, 3, 57, 3, 57, 3, 57, 3, 57, 3, 58, 3, 58, 3, 58, 3, 58, 3, 58, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 59, 3, 60, 3, 60, 3, 60, 3, 61, 3, 61, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 62, 3, 63, 3, 63, 3, 64, 3, 64, 3, 64, 3, 64, 3, 64, 3, 65, 3, 65, 3, 65, 3, 66, 3, 66, 3, 66, 3, 67, 3, 67, 3, 68, 3, 68, 3, 68, 3, 69, 3, 69, 3, 70, 3, 70, 3, 70, 3, 71, 3, 71, 3, 72, 3, 72, 3, 73, 3, 73, 3, 74, 3, 74, 3, 75, 3, 75, 3, 76, 3, 76, 3, 76, 3, 76, 3, 76, 3, 77, 3, 77, 3, 77, 3, 77, 3, 77, 3, 78, 3, 78, 7, 78, 834, 10, 78, 12, 78, 14, 78, 837, 11, 78, 3, 78, 3, 78, 5, 78, 841, 10, 78, 3, 78, 6, 78, 844, 10, 78, 13, 78, 14, 78, 845, 5, 78, 848, 10, 78, 3, 79, 3, 79, 6, 79, 852, 10, 79, 13, 79, 14, 79, 853, 3, 79, 3, 79, 3, 80, 3, 80, 3, 80, 3, 80, 3, 81, 3, 81, 3, 81, 3, 81, 3, 82, 3, 82, 3, 82, 3, 82, 3, 83, 3, 83, 3, 83, 3, 83, 3, 83, 3, 84, 3, 84, 3, 84, 3, 84, 3, 85, 3, 85, 3, 85, 3, 85, 3, 86, 3, 86, 3, 86, 3, 86, 3, 87, 3, 87, 3, 87, 3, 87, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 88, 3, 89, 3, 89, 3, 89, 5, 89, 903, 10, 89, 3, 90, 6, 90, 906, 10, 90, 13, 90, 14, 90, 907, 3, 91, 3, 91, 3, 91, 3, 91, 3, 92, 3, 92, 3, 92, 3, 92, 3, 93, 3, 93, 3, 93, 3, 93, 3, 94, 3, 94, 3, 94, 3, 94, 3, 95, 3, 95, 3, 95, 3, 95, 3, 95, 3, 96, 3, 96, 3, 96, 3, 96, 3, 97, 3, 97, 3, 97, 3, 97, 3, 98, 3, 98, 3, 98, 3, 98, 5, 98, 943, 10, 98, 3, 99, 3, 99, 5, 99, 947, 10, 99, 3, 99, 7, 99, 950, 10, 99, 12, 99, 14, 99, 953, 11, 99, 3, 99, 3, 99, 5, 99, 957, 10, 99, 3, 99, 6, 99, 960, 10, 99, 13, 99, 14, 99, 961, 5, 99, 964, 10, 99, 3, 100, 3, 100, 3, 100, 3, 100, 3, 101, 3, 101, 3, 101, 3, 101, 3, 102, 3, 102, 3, 102, 3, 102, 3, 103, 3, 103, 3, 103, 3, 103, 3, 104, 3, 104, 3, 104, 3, 104, 3, 105, 3, 105, 3, 105, 3, 105, 3, 105, 3, 106, 3, 106, 3, 106, 3, 106, 3, 107, 3, 107, 3, 107, 3, 107, 3, 108, 3, 108, 3, 108, 3, 108, 3, 109, 3, 109, 3, 109, 3, 110, 3, 110, 3, 110, 3, 110, 3, 111, 3, 111, 3, 111, 3, 111, 3, 112, 3, 112, 3, 112, 3, 112, 3, 113, 3, 113, 3, 113, 3, 113, 3, 114, 3, 114, 3, 114, 3, 114, 3, 115, 3, 115, 3, 115, 3, 115, 3, 115, 3, 116, 3, 116, 3, 116, 3, 116, 3, 116, 3, 117, 3, 117, 3, 117, 3, 117, 3, 117, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 118, 3, 119, 3, 119, 3, 120, 3, 120, 5, 120, 1052, 10, 120, 3, 120, 7, 120, 1055, 10, 120, 12, 120, 14, 120, 1058, 11, 120, 3, 121, 3, 121, 3, 121, 3, 121, 3, 122, 3, 122, 3, 122, 3, 122, 3, 123, 3, 123, 3, 123, 3, 123, 3, 124, 3, 124, 3, 124, 3, 124, 3, 125, 3, 125, 3, 125, 3, 125, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 126, 3, 127, 3, 127, 3, 127, 3, 127, 3, 128, 3, 128, 3, 128, 3, 128, 3, 129, 3, 129, 3, 129, 3, 129, 3, 130, 3, 130, 3, 130, 3, 130, 3, 131, 3, 131, 3, 131, 3, 131, 3, 132, 3, 132, 3, 132, 3, 132, 3, 133, 3, 133, 3, 133, 3, 133, 3, 134, 3, 134, 3, 134, 3, 134, 3, 135, 3, 135, 3, 135, 3, 135, 3, 136, 3, 136, 3, 136, 3, 136, 3, 136, 3, 137, 3, 137, 3, 137, 3, 137, 3, 138, 3, 138, 3, 138, 3, 138, 3, 139, 3, 139, 3, 139, 3, 139, 3, 140, 3, 140, 3, 140, 3, 140, 3, 141, 3, 141, 3, 141, 3, 141, 3, 142, 3, 142, 3, 142, 3, 142, 3, 143, 3, 143, 3, 143, 3, 143, 3, 143, 3, 144, 3, 144, 3, 144, 3, 144, 3, 144, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 145, 3, 146, 3, 146, 3, 146, 3, 146, 3, 147, 3, 147, 3, 147, 3, 147, 3, 148, 3, 148, 3, 148, 3, 148, 3, 149, 3, 149, 3, 149, 3, 149, 3, 149, 3, 150, 3, 150, 3, 151, 3, 151, 3, 151, 3, 151, 3, 151, 6, 151, 1195, 10, 151, 13, 151, 14, 151, 1196, 3, 152, 3, 152, 3, 152, 3, 152, 3, 153, 3, 153, 3, 153, 3, 153, 3, 154, 3, 154, 3, 154, 3, 154, 3, 155, 3, 155, 3, 156, 3, 156, 3, 157, 3, 157, 3, 158, 3, 158, 3, 159, 3, 159, 3, 160, 3, 160, 3, 161, 3, 161, 3, 162, 3, 162, 3, 163, 3, 163, 3, 164, 3, 164, 3, 165, 3, 165, 3, 166, 3, 166, 3, 167, 3, 167, 3, 168, 3, 168, 3, 169, 3, 169, 3, 170, 3, 170, 3, 171, 3, 171, 3, 172, 3, 172, 3, 173, 3, 173, 3, 174, 3, 174, 3, 175, 3, 175, 3, 176, 3, 176, 3, 177, 3, 177, 3, 178, 3, 178, 3, 179, 3, 179, 3, 180, 3, 180, 4, 555, 646, 2, 2, 181, 13, 2, 3, 15, 2, 4, 17, 2, 5, 19, 2, 6, 21, 2, 7, 23, 2, 8, 25, 2, 9, 27, 2, 10, 29, 2, 11, 31, 2, 12, 33, 2, 13, 35, 2, 14, 37, 2, 15, 39, 2, 16, 41, 2, 17, 43, 2, 18, 45, 2, 19, 47, 2, 20, 49, 2, 21, 51, 2, 22, 53, 2, 23, 55, 2, 24, 57, 2, 2, 59, 2, 2, 61, 2, 25, 63, 2, 26, 65, 2, 27, 67, 2, 28, 69, 2, 2, 71, 2, 2, 73, 2, 2, 75, 2, 2, 77, 2, 2, 79, 2, 2, 81, 2, 2, 83, 2, 2, 85, 2, 2, 87, 2, 2, 89, 2, 29, 91, 2, 30, 93, 2, 31, 95, 2, 32, 97, 2, 33, 99, 2, 34, 101, 2, 35, 103, 2, 36, 105, 2, 37, 107, 2, 38, 109, 2, 39, 111, 2, 40, 113, 2, 41, 115, 2, 42, 117, 2, 43, 119, 2, 44, 121, 2, 45, 123, 2, 46, 125, 2, 47, 127, 2, 48, 129, 2, 49, 131, 2, 50, 133, 2, 51, 135, 2, 52, 137, 2, 53, 139, 2, 54, 141, 2, 55, 143, 2, 56, 145, 2, 57, 147, 2, 58, 149, 2, 59, 151, 2, 60, 153, 2, 61, 155, 2, 62, 157, 2, 63, 159, 2, 64, 161, 2, 65, 163, 2, 66, 165, 2, 67, 167, 2, 68, 169, 2, 69, 171, 2, 70, 173, 2, 71, 175, 2, 2, 177, 2, 2, 179, 2, 2, 181, 2, 2, 183, 2, 2, 185, 2, 72, 187, 2, 2, 189, 2, 73, 191, 2, 2, 193, 2, 74, 195, 2, 75, 197, 2, 76, 199, 2, 2, 201, 2, 2, 203, 2, 2, 205, 2, 2, 207, 2, 77, 209, 2, 2, 211, 2, 2, 213, 2, 78, 215, 2, 79, 217, 2, 80, 219, 2, 2, 221, 2, 2, 223, 2, 2, 225, 2, 2, 227, 2, 81, 229, 2, 2, 231, 2, 2, 233, 2, 82, 235, 2, 83, 237, 2, 84, 239, 2, 2, 241, 2, 2, 243, 2, 85, 245, 2, 86, 247, 2, 2, 249, 2, 87, 251, 2, 2, 253, 2, 2, 255, 2, 88, 257, 2, 89, 259, 2, 90, 261, 2, 2, 263, 2, 2, 265, 2, 2, 267, 2, 2, 269, 2, 2, 271, 2, 2, 273, 2, 2, 275, 2, 91, 277, 2, 92, 279, 2, 93, 281, 2, 2, 283, 2, 2, 285, 2, 2, 287, 2, 2, 289, 2, 94, 291, 2, 95, 293, 2, 96, 295, 2, 2, 297, 2, 97, 299, 2, 98, 301, 2, 99, 303, 2, 100, 305, 2, 101, 307, 2, 2, 309, 2, 102, 311, 2, 103, 313, 2, 104, 315, 2, 105, 317, 2, 106, 319, 2, 2, 321, 2, 2, 323, 2, 2, 325, 2, 2, 327, 2, 2, 329, 2, 2, 331, 2, 2, 333, 2, 2, 335, 2, 2, 337, 2, 2, 339, 2, 2, 341, 2, 2, 343, 2, 2, 345, 2, 2, 347, 2, 2, 349, 2, 2, 351, 2, 2, 353, 2, 2, 355, 2, 2, 357, 2, 2, 359, 2, 2, 361, 2, 2, 363, 2, 2, 365, 2, 2, 367, 2, 2, 369, 2, 2, 13, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 40, 8, 2, 11, 12, 15, 15, 34, 34, 49, 49, 93, 93, 95, 95, 4, 2, 12, 12, 15, 15, 5, 2, 11, 12, 15, 15, 34, 34, 3, 2, 50, 59, 4, 2, 67, 92, 99, 124, 7, 2, 36, 36, 94, 94, 112, 112, 116, 116, 118, 118, 6, 2, 12, 12, 15, 15, 36, 36, 94, 94, 4, 2, 71, 71, 103, 103, 4, 2, 45, 45, 47, 47, 3, 2, 98, 98, 12, 2, 11, 12, 15, 15, 34, 34, 46, 46, 49, 49, 63, 63, 93, 93, 95, 95, 98, 98, 126, 126, 4, 2, 44, 44, 49, 49, 13, 2, 11, 12, 15, 15, 34, 34, 36, 37, 46, 46, 49, 49, 60, 60, 62, 62, 64, 65, 94, 94, 126, 126, 4, 2, 67, 67, 99, 99, 4, 2, 68, 68, 100, 100, 4, 2, 69, 69, 101, 101, 4, 2, 70, 70, 102, 102, 4, 2, 72, 72, 104, 104, 4, 2, 73, 73, 105, 105, 4, 2, 74, 74, 106, 106, 4, 2, 75, 75, 107, 107, 4, 2, 76, 76, 108, 108, 4, 2, 77, 77, 109, 109, 4, 2, 78, 78, 110, 110, 4, 2, 79, 79, 111, 111, 4, 2, 80, 80, 112, 112, 4, 2, 81, 81, 113, 113, 4, 2, 82, 82, 114, 114, 4, 2, 83, 83, 115, 115, 4, 2, 84, 84, 116, 116, 4, 2, 85, 85, 117, 117, 4, 2, 86, 86, 118, 118, 4, 2, 87, 87, 119, 119, 4, 2, 88, 88, 120, 120, 4, 2, 89, 89, 121, 121, 4, 2, 90, 90, 122, 122, 4, 2, 91, 91, 123, 123, 4, 2, 92, 92, 124, 124, 2, 1263, 2, 13, 3, 2, 2, 2, 2, 15, 3, 2, 2, 2, 2, 17, 3, 2, 2, 2, 2, 19, 3, 2, 2, 2, 2, 21, 3, 2, 2, 2, 2, 23, 3, 2, 2, 2, 2, 25, 3, 2, 2, 2, 2, 27, 3, 2, 2, 2, 2, 29, 3, 2, 2, 2, 2, 31, 3, 2, 2, 2, 2, 33, 3, 2, 2, 2, 2, 35, 3, 2, 2, 2, 2, 37, 3, 2, 2, 2, 2, 39, 3, 2, 2, 2, 2, 41, 3, 2, 2, 2, 2, 43, 3, 2, 2, 2, 2, 45, 3, 2, 2, 2, 2, 47, 3, 2, 2, 2, 2, 49, 3, 2, 2, 2, 2, 51, 3, 2, 2, 2, 2, 53, 3, 2, 2, 2, 2, 55, 3, 2, 2, 2, 3, 57, 3, 2, 2, 2, 3, 59, 3, 2, 2, 2, 3, 61, 3, 2, 2, 2, 3, 63, 3, 2, 2, 2, 3, 65, 3, 2, 2, 2, 4, 67, 3, 2, 2, 2, 4, 89, 3, 2, 2, 2, 4, 91, 3, 2, 2, 2, 4, 93, 3, 2, 2, 2, 4, 95, 3, 2, 2, 2, 4, 97, 3, 2, 2, 2, 4, 99, 3, 2, 2, 2, 4, 101, 3, 2, 2, 2, 4, 103, 3, 2, 2, 2, 4, 105, 3, 2, 2, 2, 4, 107, 3, 2, 2, 2, 4, 109, 3, 2, 2, 2, 4, 111, 3, 2, 2, 2, 4, 113, 3, 2, 2, 2, 4, 115, 3, 2, 2, 2, 4, 117, 3, 2, 2, 2, 4, 119, 3, 2, 2, 2, 4, 121, 3, 2, 2, 2, 4, 123, 3, 2, 2, 2, 4, 125, 3, 2, 2, 2, 4, 127, 3, 2, 2, 2, 4, 129, 3, 2, 2, 2, 4, 131, 3, 2, 2, 2, 4, 133, 3, 2, 2, 2, 4, 135, 3, 2, 2, 2, 4, 137, 3, 2, 2, 2, 4, 139, 3, 2, 2, 2, 4, 141, 3, 2, 2, 2, 4, 143, 3, 2, 2, 2, 4, 145, 3, 2, 2, 2, 4, 147, 3, 2, 2, 2, 4, 149, 3, 2, 2, 2, 4, 151, 3, 2, 2, 2, 4, 153, 3, 2, 2, 2, 4, 155, 3, 2, 2, 2, 4, 157, 3, 2, 2, 2, 4, 159, 3, 2, 2, 2, 4, 161, 3, 2, 2, 2, 4, 163, 3, 2, 2, 2, 4, 165, 3, 2, 2, 2, 4, 167, 3, 2, 2, 2, 4, 169, 3, 2, 2, 2, 4, 171, 3, 2, 2, 2, 4, 173, 3, 2, 2, 2, 5, 175, 3, 2, 2, 2, 5, 177, 3, 2, 2, 2, 5, 179, 3, 2, 2, 2, 5, 181, 3, 2, 2, 2, 5, 183, 3, 2, 2, 2, 5, 185, 3, 2, 2, 2, 5, 189, 3, 2, 2, 2, 5, 191, 3, 2, 2, 2, 5, 193, 3, 2, 2, 2, 5, 195, 3, 2, 2, 2, 5, 197, 3, 2, 2, 2, 6, 199, 3, 2, 2, 2, 6, 201, 3, 2, 2, 2, 6, 203, 3, 2, 2, 2, 6, 207, 3, 2, 2, 2, 6, 209, 3, 2, 2, 2, 6, 211, 3, 2, 2, 2, 6, 213, 3, 2, 2, 2, 6, 215, 3, 2, 2, 2, 6, 217, 3, 2, 2, 2, 7, 219, 3, 2, 2, 2, 7, 221, 3, 2, 2, 2, 7, 223, 3, 2, 2, 2, 7, 225, 3, 2, 2, 2, 7, 227, 3, 2, 2, 2, 7, 229, 3, 2, 2, 2, 7, 231, 3, 2, 2, 2, 7, 233, 3, 2, 2, 2, 7, 235, 3, 2, 2, 2, 7, 237, 3, 2, 2, 2, 8, 239, 3, 2, 2, 2, 8, 241, 3, 2, 2, 2, 8, 243, 3, 2, 2, 2, 8, 245, 3, 2, 2, 2, 8, 249, 3, 2, 2, 2, 8, 251, 3, 2, 2, 2, 8, 253, 3, 2, 2, 2, 8, 255, 3, 2, 2, 2, 8, 257, 3, 2, 2, 2, 8, 259, 3, 2, 2, 2, 9, 261, 3, 2, 2, 2, 9, 263, 3, 2, 2, 2, 9, 265, 3, 2, 2, 2, 9, 267, 3, 2, 2, 2, 9, 269, 3, 2, 2, 2, 9, 271, 3, 2, 2, 2, 9, 273, 3, 2, 2, 2, 9, 275, 3, 2, 2, 2, 9, 277, 3, 2, 2, 2, 9, 279, 3, 2, 2, 2, 10, 281, 3, 2, 2, 2, 10, 283, 3, 2, 2, 2, 10, 285, 3, 2, 2, 2, 10, 287, 3, 2, 2, 2, 10, 289, 3, 2, 2, 2, 10, 291, 3, 2, 2, 2, 10, 293, 3, 2, 2, 2, 11, 295, 3, 2, 2, 2, 11, 297, 3, 2, 2, 2, 11, 299, 3, 2, 2, 2, 11, 301, 3, 2, 2, 2, 11, 303, 3, 2, 2, 2, 11, 305, 3, 2, 2, 2, 12, 307, 3, 2, 2, 2, 12, 309, 3, 2, 2, 2, 12, 311, 3, 2, 2, 2, 12, 313, 3, 2, 2, 2, 12, 315, 3, 2, 2, 2, 12, 317, 3, 2, 2, 2, 13, 371, 3, 2, 2, 2, 15, 381, 3, 2, 2, 2, 17, 388, 3, 2, 2, 2, 19, 397, 3, 2, 2, 2, 21, 404, 3, 2, 2, 2, 23, 414, 3, 2, 2, 2, 25, 421, 3, 2, 2, 2, 27, 428, 3, 2, 2, 2, 29, 442, 3, 2, 2, 2, 31, 449, 3, 2, 2, 2, 33, 457, 3, 2, 2, 2, 35, 469, 3, 2, 2, 2, 37, 479, 3, 2, 2, 2, 39, 488, 3, 2, 2, 2, 41, 494, 3, 2, 2, 2, 43, 501, 3, 2, 2, 2, 45, 508, 3, 2, 2, 2, 47, 516, 3, 2, 2, 2, 49, 525, 3, 2, 2, 2, 51, 531, 3, 2, 2, 2, 53, 548, 3, 2, 2, 2, 55, 564, 3, 2, 2, 2, 57, 570, 3, 2, 2, 2, 59, 575, 3, 2, 2, 2, 61, 580, 3, 2, 2, 2, 63, 584, 3, 2, 2, 2, 65, 588, 3, 2, 2, 2, 67, 592, 3, 2, 2, 2, 69, 596, 3, 2, 2, 2, 71, 598, 3, 2, 2, 2, 73, 600, 3, 2, 2, 2, 75, 603, 3, 2, 2, 2, 77, 605, 3, 2, 2, 2, 79, 614, 3, 2, 2, 2, 81, 616, 3, 2, 2, 2, 83, 621, 3, 2, 2, 2, 85, 623, 3, 2, 2, 2, 87, 628, 3, 2, 2, 2, 89, 659, 3, 2, 2, 2, 91, 662, 3, 2, 2, 2, 93, 708, 3, 2, 2, 2, 95, 710, 3, 2, 2, 2, 97, 713, 3, 2, 2, 2, 99, 717, 3, 2, 2, 2, 101, 721, 3, 2, 2, 2, 103, 723, 3, 2, 2, 2, 105, 725, 3, 2, 2, 2, 107, 730, 3, 2, 2, 2, 109, 732, 3, 2, 2, 2, 111, 738, 3, 2, 2, 2, 113, 744, 3, 2, 2, 2, 115, 749, 3, 2, 2, 2, 117, 751, 3, 2, 2, 2, 119, 754, 3, 2, 2, 2, 121, 757, 3, 2, 2, 2, 123, 762, 3, 2, 2, 2, 125, 766, 3, 2, 2, 2, 127, 771, 3, 2, 2, 2, 129, 777, 3, 2, 2, 2, 131, 780, 3, 2, 2, 2, 133, 782, 3, 2, 2, 2, 135, 788, 3, 2, 2, 2, 137, 790, 3, 2, 2, 2, 139, 795, 3, 2, 2, 2, 141, 798, 3, 2, 2, 2, 143, 801, 3, 2, 2, 2, 145, 803, 3, 2, 2, 2, 147, 806, 3, 2, 2, 2, 149, 808, 3, 2, 2, 2, 151, 811, 3, 2, 2, 2, 153, 813, 3, 2, 2, 2, 155, 815, 3, 2, 2, 2, 157, 817, 3, 2, 2, 2, 159, 819, 3, 2, 2, 2, 161, 821, 3, 2, 2, 2, 163, 826, 3, 2, 2, 2, 165, 847, 3, 2, 2, 2, 167, 849, 3, 2, 2, 2, 169, 857, 3, 2, 2, 2, 171, 861, 3, 2, 2, 2, 173, 865, 3, 2, 2, 2, 175, 869, 3, 2, 2, 2, 177, 874, 3, 2, 2, 2, 179, 878, 3, 2, 2, 2, 181, 882, 3, 2, 2, 2, 183, 886, 3, 2, 2, 2, 185, 890, 3, 2, 2, 2, 187, 902, 3, 2, 2, 2, 189, 905, 3, 2, 2, 2, 191, 909, 3, 2, 2, 2, 193, 913, 3, 2, 2, 2, 195, 917, 3, 2, 2, 2, 197, 921, 3, 2, 2, 2, 199, 925, 3, 2, 2, 2, 201, 930, 3, 2, 2, 2, 203, 934, 3, 2, 2, 2, 205, 942, 3, 2, 2, 2, 207, 963, 3, 2, 2, 2, 209, 965, 3, 2, 2, 2, 211, 969, 3, 2, 2, 2, 213, 973, 3, 2, 2, 2, 215, 977, 3, 2, 2, 2, 217, 981, 3, 2, 2, 2, 219, 985, 3, 2, 2, 2, 221, 990, 3, 2, 2, 2, 223, 994, 3, 2, 2, 2, 225, 998, 3, 2, 2, 2, 227, 1002, 3, 2, 2, 2, 229, 1005, 3, 2, 2, 2, 231, 1009, 3, 2, 2, 2, 233, 1013, 3, 2, 2, 2, 235, 1017, 3, 2, 2, 2, 237, 1021, 3, 2, 2, 2, 239, 1025, 3, 2, 2, 2, 241, 1030, 3, 2, 2, 2, 243, 1035, 3, 2, 2, 2, 245, 1040, 3, 2, 2, 2, 247, 1047, 3, 2, 2, 2, 249, 1051, 3, 2, 2, 2, 251, 1059, 3, 2, 2, 2, 253, 1063, 3, 2, 2, 2, 255, 1067, 3, 2, 2, 2, 257, 1071, 3, 2, 2, 2, 259, 1075, 3, 2, 2, 2, 261, 1079, 3, 2, 2, 2, 263, 1085, 3, 2, 2, 2, 265, 1089, 3, 2, 2, 2, 267, 1093, 3, 2, 2, 2, 269, 1097, 3, 2, 2, 2, 271, 1101, 3, 2, 2, 2, 273, 1105, 3, 2, 2, 2, 275, 1109, 3, 2, 2, 2, 277, 1113, 3, 2, 2, 2, 279, 1117, 3, 2, 2, 2, 281, 1121, 3, 2, 2, 2, 283, 1126, 3, 2, 2, 2, 285, 1130, 3, 2, 2, 2, 287, 1134, 3, 2, 2, 2, 289, 1138, 3, 2, 2, 2, 291, 1142, 3, 2, 2, 2, 293, 1146, 3, 2, 2, 2, 295, 1150, 3, 2, 2, 2, 297, 1155, 3, 2, 2, 2, 299, 1160, 3, 2, 2, 2, 301, 1170, 3, 2, 2, 2, 303, 1174, 3, 2, 2, 2, 305, 1178, 3, 2, 2, 2, 307, 1182, 3, 2, 2, 2, 309, 1187, 3, 2, 2, 2, 311, 1194, 3, 2, 2, 2, 313, 1198, 3, 2, 2, 2, 315, 1202, 3, 2, 2, 2, 317, 1206, 3, 2, 2, 2, 319, 1210, 3, 2, 2, 2, 321, 1212, 3, 2, 2, 2, 323, 1214, 3, 2, 2, 2, 325, 1216, 3, 2, 2, 2, 327, 1218, 3, 2, 2, 2, 329, 1220, 3, 2, 2, 2, 331, 1222, 3, 2, 2, 2, 333, 1224, 3, 2, 2, 2, 335, 1226, 3, 2, 2, 2, 337, 1228, 3, 2, 2, 2, 339, 1230, 3, 2, 2, 2, 341, 1232, 3, 2, 2, 2, 343, 1234, 3, 2, 2, 2, 345, 1236, 3, 2, 2, 2, 347, 1238, 3, 2, 2, 2, 349, 1240, 3, 2, 2, 2, 351, 1242, 3, 2, 2, 2, 353, 1244, 3, 2, 2, 2, 355, 1246, 3, 2, 2, 2, 357, 1248, 3, 2, 2, 2, 359, 1250, 3, 2, 2, 2, 361, 1252, 3, 2, 2, 2, 363, 1254, 3, 2, 2, 2, 365, 1256, 3, 2, 2, 2, 367, 1258, 3, 2, 2, 2, 369, 1260, 3, 2, 2, 2, 371, 372, 5, 325, 158, 2, 372, 373, 5, 335, 163, 2, 373, 374, 5, 355, 173, 2, 374, 375, 5, 355, 173, 2, 375, 376, 5, 327, 159, 2, 376, 377, 5, 323, 157, 2, 377, 378, 5, 357, 174, 2, 378, 379, 3, 2, 2, 2, 379, 380, 8, 2, 2, 2, 380, 14, 3, 2, 2, 2, 381, 382, 5, 325, 158, 2, 382, 383, 5, 353, 172, 2, 383, 384, 5, 347, 169, 2, 384, 385, 5, 349, 170, 2, 385, 386, 3, 2, 2, 2, 386, 387, 8, 3, 3, 2, 387, 16, 3, 2, 2, 2, 388, 389, 5, 327, 159, 2, 389, 390, 5, 345, 168, 2, 390, 391, 5, 353, 172, 2, 391, 392, 5, 335, 163, 2, 392, 393, 5, 323, 157, 2, 393, 394, 5, 333, 162, 2, 394, 395, 3, 2, 2, 2, 395, 396, 8, 4, 4, 2, 396, 18, 3, 2, 2, 2, 397, 398, 5, 327, 159, 2, 398, 399, 5, 361, 176, 2, 399, 400, 5, 319, 155, 2, 400, 401, 5, 341, 166, 2, 401, 402, 3, 2, 2, 2, 402, 403, 8, 5, 2, 2, 403, 20, 3, 2, 2, 2, 404, 405, 5, 327, 159, 2, 405, 406, 5, 365, 178, 2, 406, 407, 5, 349, 170, 2, 407, 408, 5, 341, 166, 2, 408, 409, 5, 319, 155, 2, 409, 410, 5, 335, 163, 2, 410, 411, 5, 345, 168, 2, 411, 412, 3, 2, 2, 2, 412, 413, 8, 6, 5, 2, 413, 22, 3, 2, 2, 2, 414, 415, 5, 329, 160, 2, 415, 416, 5, 353, 172, 2, 416, 417, 5, 347, 169, 2, 417, 418, 5, 343, 167, 2, 418, 419, 3, 2, 2, 2, 419, 420, 8, 7, 6, 2, 420, 24, 3, 2, 2, 2, 421, 422, 5, 331, 161, 2, 422, 423, 5, 353, 172, 2, 423, 424, 5, 347, 169, 2, 424, 425, 5, 339, 165, 2, 425, 426, 3, 2, 2, 2, 426, 427, 8, 8, 2, 2, 427, 26, 3, 2, 2, 2, 428, 429, 5, 335, 163, 2, 429, 430, 5, 345, 168, 2, 430, 431, 5, 341, 166, 2, 431, 432, 5, 335, 163, 2, 432, 433, 5, 345, 168, 2, 433, 434, 5, 327, 159, 2, 434, 435, 5, 355, 173, 2, 435, 436, 5, 357, 174, 2, 436, 437, 5, 319, 155, 2, 437, 438, 5, 357, 174, 2, 438, 439, 5, 355, 173, 2, 439, 440, 3, 2, 2, 2, 440, 441, 8, 9, 2, 2, 441, 28, 3, 2, 2, 2, 442, 443, 5, 339, 165, 2, 443, 444, 5, 327, 159, 2, 444, 445, 5, 327, 159, 2, 445, 446, 5, 349, 170, 2, 446, 447, 3, 2, 2, 2, 447, 448, 8, 10, 3, 2, 448, 30, 3, 2, 2, 2, 449, 450, 5, 341, 166, 2, 450, 451, 5, 335, 163, 2, 451, 452, 5, 343, 167, 2, 452, 453, 5, 335, 163, 2, 453, 454, 5, 357, 174, 2, 454, 455, 3, 2, 2, 2, 455, 456, 8, 11, 2, 2, 456, 32, 3, 2, 2, 2, 457, 458, 5, 343, 167, 2, 458, 459, 5, 361, 176, 2, 459, 460, 5, 85, 38, 2, 460, 461, 5, 327, 159, 2, 461, 462, 5, 365, 178, 2, 462, 463, 5, 349, 170, 2, 463, 464, 5, 319, 155, 2, 464, 465, 5, 345, 168, 2, 465, 466, 5, 325, 158, 2, 466, 467, 3, 2, 2, 2, 467, 468, 8, 12, 7, 2, 468, 34, 3, 2, 2, 2, 469, 470, 5, 349, 170, 2, 470, 471, 5, 353, 172, 2, 471, 472, 5, 347, 169, 2, 472, 473, 5, 337, 164, 2, 473, 474, 5, 327, 159, 2, 474, 475, 5, 323, 157, 2, 475, 476, 5, 357, 174, 2, 476, 477, 3, 2, 2, 2, 477, 478, 8, 13, 3, 2, 478, 36, 3, 2, 2, 2, 479, 480, 5, 353, 172, 2, 480, 481, 5, 327, 159, 2, 481, 482, 5, 345, 168, 2, 482, 483, 5, 319, 155, 2, 483, 484, 5, 343, 167, 2, 484, 485, 5, 327, 159, 2, 485, 486, 3, 2, 2, 2, 486, 487, 8, 14, 8, 2, 487, 38, 3, 2, 2, 2, 488, 489, 5, 353, 172, 2, 489, 490, 5, 347, 169, 2, 490, 491, 5, 363, 177, 2, 491, 492, 3, 2, 2, 2, 492, 493, 8, 15, 2, 2, 493, 40, 3, 2, 2, 2, 494, 495, 5, 355, 173, 2, 495, 496, 5, 333, 162, 2, 496, 497, 5, 347, 169, 2, 497, 498, 5, 363, 177, 2, 498, 499, 3, 2, 2, 2, 499, 500, 8, 16, 9, 2, 500, 42, 3, 2, 2, 2, 501, 502, 5, 355, 173, 2, 502, 503, 5, 347, 169, 2, 503, 504, 5, 353, 172, 2, 504, 505, 5, 357, 174, 2, 505, 506, 3, 2, 2, 2, 506, 507, 8, 17, 2, 2, 507, 44, 3, 2, 2, 2, 508, 509, 5, 355, 173, 2, 509, 510, 5, 357, 174, 2, 510, 511, 5, 319, 155, 2, 511, 512, 5, 357, 174, 2, 512, 513, 5, 355, 173, 2, 513, 514, 3, 2, 2, 2, 514, 515, 8, 18, 2, 2, 515, 46, 3, 2, 2, 2, 516, 517, 5, 363, 177, 2, 517, 518, 5, 333, 162, 2, 518, 519, 5, 327, 159, 2, 519, 520, 5, 353, 172, 2, 520, 521, 5, 327, 159, 2, 521, 522, 3, 2, 2, 2, 522, 523, 8, 19, 2, 2, 523, 48, 3, 2, 2, 2, 524, 526, 10, 2, 2, 2, 525, 524, 3, 2, 2, 2, 526, 527, 3, 2, 2, 2, 527, 525, 3, 2, 2, 2, 527, 528, 3, 2, 2, 2, 528, 529, 3, 2, 2, 2, 529, 530, 8, 20, 2, 2, 530, 50, 3, 2, 2, 2, 531, 532, 7, 49, 2, 2, 532, 533, 7, 49, 2, 2, 533, 537, 3, 2, 2, 2, 534, 536, 10, 3, 2, 2, 535, 534, 3, 2, 2, 2, 536, 539, 3, 2, 2, 2, 537, 535, 3, 2, 2, 2, 537, 538, 3, 2, 2, 2, 538, 541, 3, 2, 2, 2, 539, 537, 3, 2, 2, 2, 540, 542, 7, 15, 2, 2, 541, 540, 3, 2, 2, 2, 541, 542, 3, 2, 2, 2, 542, 544, 3, 2, 2, 2, 543, 545, 7, 12, 2, 2, 544, 543, 3, 2, 2, 2, 544, 545, 3, 2, 2, 2, 545, 546, 3, 2, 2, 2, 546, 547, 8, 21, 10, 2, 547, 52, 3, 2, 2, 2, 548, 549, 7, 49, 2, 2, 549, 550, 7, 44, 2, 2, 550, 555, 3, 2, 2, 2, 551, 554, 5, 53, 22, 2, 552, 554, 11, 2, 2, 2, 553, 551, 3, 2, 2, 2, 553, 552, 3, 2, 2, 2, 554, 557, 3, 2, 2, 2, 555, 556, 3, 2, 2, 2, 555, 553, 3, 2, 2, 2, 556, 558, 3, 2, 2, 2, 557, 555, 3, 2, 2, 2, 558, 559, 7, 44, 2, 2, 559, 560, 7, 49, 2, 2, 560, 561, 3, 2, 2, 2, 561, 562, 8, 22, 10, 2, 562, 54, 3, 2, 2, 2, 563, 565, 9, 4, 2, 2, 564, 563, 3, 2, 2, 2, 565, 566, 3, 2, 2, 2, 566, 564, 3, 2, 2, 2, 566, 567, 3, 2, 2, 2, 567, 568, 3, 2, 2, 2, 568, 569, 8, 23, 10, 2, 569, 56, 3, 2, 2, 2, 570, 571, 5, 161, 76, 2, 571, 572, 3, 2, 2, 2, 572, 573, 8, 24, 11, 2, 573, 574, 8, 24, 12, 2, 574, 58, 3, 2, 2, 2, 575, 576, 5, 67, 29, 2, 576, 577, 3, 2, 2, 2, 577, 578, 8, 25, 13, 2, 578, 579, 8, 25, 14, 2, 579, 60, 3, 2, 2, 2, 580, 581, 5, 55, 23, 2, 581, 582, 3, 2, 2, 2, 582, 583, 8, 26, 10, 2, 583, 62, 3, 2, 2, 2, 584, 585, 5, 51, 21, 2, 585, 586, 3, 2, 2, 2, 586, 587, 8, 27, 10, 2, 587, 64, 3, 2, 2, 2, 588, 589, 5, 53, 22, 2, 589, 590, 3, 2, 2, 2, 590, 591, 8, 28, 10, 2, 591, 66, 3, 2, 2, 2, 592, 593, 7, 126, 2, 2, 593, 594, 3, 2, 2, 2, 594, 595, 8, 29, 14, 2, 595, 68, 3, 2, 2, 2, 596, 597, 9, 5, 2, 2, 597, 70, 3, 2, 2, 2, 598, 599, 9, 6, 2, 2, 599, 72, 3, 2, 2, 2, 600, 601, 7, 94, 2, 2, 601, 602, 9, 7, 2, 2, 602, 74, 3, 2, 2, 2, 603, 604, 10, 8, 2, 2, 604, 76, 3, 2, 2, 2, 605, 607, 9, 9, 2, 2, 606, 608, 9, 10, 2, 2, 607, 606, 3, 2, 2, 2, 607, 608, 3, 2, 2, 2, 608, 610, 3, 2, 2, 2, 609, 611, 5, 69, 30, 2, 610, 609, 3, 2, 2, 2, 611, 612, 3, 2, 2, 2, 612, 610, 3, 2, 2, 2, 612, 613, 3, 2, 2, 2, 613, 78, 3, 2, 2, 2, 614, 615, 7, 66, 2, 2, 615, 80, 3, 2, 2, 2, 616, 617, 7, 98, 2, 2, 617, 82, 3, 2, 2, 2, 618, 622, 10, 11, 2, 2, 619, 620, 7, 98, 2, 2, 620, 622, 7, 98, 2, 2, 621, 618, 3, 2, 2, 2, 621, 619, 3, 2, 2, 2, 622, 84, 3, 2, 2, 2, 623, 624, 7, 97, 2, 2, 624, 86, 3, 2, 2, 2, 625, 629, 5, 71, 31, 2, 626, 629, 5, 69, 30, 2, 627, 629, 5, 85, 38, 2, 628, 625, 3, 2, 2, 2, 628, 626, 3, 2, 2, 2, 628, 627, 3, 2, 2, 2, 629, 88, 3, 2, 2, 2, 630, 635, 7, 36, 2, 2, 631, 634, 5, 73, 32, 2, 632, 634, 5, 75, 33, 2, 633, 631, 3, 2, 2, 2, 633, 632, 3, 2, 2, 2, 634, 637, 3, 2, 2, 2, 635, 633, 3, 2, 2, 2, 635, 636, 3, 2, 2, 2, 636, 638, 3, 2, 2, 2, 637, 635, 3, 2, 2, 2, 638, 660, 7, 36, 2, 2, 639, 640, 7, 36, 2, 2, 640, 641, 7, 36, 2, 2, 641, 642, 7, 36, 2, 2, 642, 646, 3, 2, 2, 2, 643, 645, 10, 3, 2, 2, 644, 643, 3, 2, 2, 2, 645, 648, 3, 2, 2, 2, 646, 647, 3, 2, 2, 2, 646, 644, 3, 2, 2, 2, 647, 649, 3, 2, 2, 2, 648, 646, 3, 2, 2, 2, 649, 650, 7, 36, 2, 2, 650, 651, 7, 36, 2, 2, 651, 652, 7, 36, 2, 2, 652, 654, 3, 2, 2, 2, 653, 655, 7, 36, 2, 2, 654, 653, 3, 2, 2, 2, 654, 655, 3, 2, 2, 2, 655, 657, 3, 2, 2, 2, 656, 658, 7, 36, 2, 2, 657, 656, 3, 2, 2, 2, 657, 658, 3, 2, 2, 2, 658, 660, 3, 2, 2, 2, 659, 630, 3, 2, 2, 2, 659, 639, 3, 2, 2, 2, 660, 90, 3, 2, 2, 2, 661, 663, 5, 69, 30, 2, 662, 661, 3, 2, 2, 2, 663, 664, 3, 2, 2, 2, 664, 662, 3, 2, 2, 2, 664, 665, 3, 2, 2, 2, 665, 92, 3, 2, 2, 2, 666, 668, 5, 69, 30, 2, 667, 666, 3, 2, 2, 2, 668, 669, 3, 2, 2, 2, 669, 667, 3, 2, 2, 2, 669, 670, 3, 2, 2, 2, 670, 671, 3, 2, 2, 2, 671, 675, 5, 107, 49, 2, 672, 674, 5, 69, 30, 2, 673, 672, 3, 2, 2, 2, 674, 677, 3, 2, 2, 2, 675, 673, 3, 2, 2, 2, 675, 676, 3, 2, 2, 2, 676, 709, 3, 2, 2, 2, 677, 675, 3, 2, 2, 2, 678, 680, 5, 107, 49, 2, 679, 681, 5, 69, 30, 2, 680, 679, 3, 2, 2, 2, 681, 682, 3, 2, 2, 2, 682, 680, 3, 2, 2, 2, 682, 683, 3, 2, 2, 2, 683, 709, 3, 2, 2, 2, 684, 686, 5, 69, 30, 2, 685, 684, 3, 2, 2, 2, 686, 687, 3, 2, 2, 2, 687, 685, 3, 2, 2, 2, 687, 688, 3, 2, 2, 2, 688, 696, 3, 2, 2, 2, 689, 693, 5, 107, 49, 2, 690, 692, 5, 69, 30, 2, 691, 690, 3, 2, 2, 2, 692, 695, 3, 2, 2, 2, 693, 691, 3, 2, 2, 2, 693, 694, 3, 2, 2, 2, 694, 697, 3, 2, 2, 2, 695, 693, 3, 2, 2, 2, 696, 689, 3, 2, 2, 2, 696, 697, 3, 2, 2, 2, 697, 698, 3, 2, 2, 2, 698, 699, 5, 77, 34, 2, 699, 709, 3, 2, 2, 2, 700, 702, 5, 107, 49, 2, 701, 703, 5, 69, 30, 2, 702, 701, 3, 2, 2, 2, 703, 704, 3, 2, 2, 2, 704, 702, 3, 2, 2, 2, 704, 705, 3, 2, 2, 2, 705, 706, 3, 2, 2, 2, 706, 707, 5, 77, 34, 2, 707, 709, 3, 2, 2, 2, 708, 667, 3, 2, 2, 2, 708, 678, 3, 2, 2, 2, 708, 685, 3, 2, 2, 2, 708, 700, 3, 2, 2, 2, 709, 94, 3, 2, 2, 2, 710, 711, 5, 321, 156, 2, 711, 712, 5, 367, 179, 2, 712, 96, 3, 2, 2, 2, 713, 714, 5, 319, 155, 2, 714, 715, 5, 345, 168, 2, 715, 716, 5, 325, 158, 2, 716, 98, 3, 2, 2, 2, 717, 718, 5, 319, 155, 2, 718, 719, 5, 355, 173, 2, 719, 720, 5, 323, 157, 2, 720, 100, 3, 2, 2, 2, 721, 722, 7, 63, 2, 2, 722, 102, 3, 2, 2, 2, 723, 724, 7, 46, 2, 2, 724, 104, 3, 2, 2, 2, 725, 726, 5, 325, 158, 2, 726, 727, 5, 327, 159, 2, 727, 728, 5, 355, 173, 2, 728, 729, 5, 323, 157, 2, 729, 106, 3, 2, 2, 2, 730, 731, 7, 48, 2, 2, 731, 108, 3, 2, 2, 2, 732, 733, 5, 329, 160, 2, 733, 734, 5, 319, 155, 2, 734, 735, 5, 341, 166, 2, 735, 736, 5, 355, 173, 2, 736, 737, 5, 327, 159, 2, 737, 110, 3, 2, 2, 2, 738, 739, 5, 329, 160, 2, 739, 740, 5, 335, 163, 2, 740, 741, 5, 353, 172, 2, 741, 742, 5, 355, 173, 2, 742, 743, 5, 357, 174, 2, 743, 112, 3, 2, 2, 2, 744, 745, 5, 341, 166, 2, 745, 746, 5, 319, 155, 2, 746, 747, 5, 355, 173, 2, 747, 748, 5, 357, 174, 2, 748, 114, 3, 2, 2, 2, 749, 750, 7, 42, 2, 2, 750, 116, 3, 2, 2, 2, 751, 752, 5, 335, 163, 2, 752, 753, 5, 345, 168, 2, 753, 118, 3, 2, 2, 2, 754, 755, 5, 335, 163, 2, 755, 756, 5, 355, 173, 2, 756, 120, 3, 2, 2, 2, 757, 758, 5, 341, 166, 2, 758, 759, 5, 335, 163, 2, 759, 760, 5, 339, 165, 2, 760, 761, 5, 327, 159, 2, 761, 122, 3, 2, 2, 2, 762, 763, 5, 345, 168, 2, 763, 764, 5, 347, 169, 2, 764, 765, 5, 357, 174, 2, 765, 124, 3, 2, 2, 2, 766, 767, 5, 345, 168, 2, 767, 768, 5, 359, 175, 2, 768, 769, 5, 341, 166, 2, 769, 770, 5, 341, 166, 2, 770, 126, 3, 2, 2, 2, 771, 772, 5, 345, 168, 2, 772, 773, 5, 359, 175, 2, 773, 774, 5, 341, 166, 2, 774, 775, 5, 341, 166, 2, 775, 776, 5, 355, 173, 2, 776, 128, 3, 2, 2, 2, 777, 778, 5, 347, 169, 2, 778, 779, 5, 353, 172, 2, 779, 130, 3, 2, 2, 2, 780, 781, 7, 65, 2, 2, 781, 132, 3, 2, 2, 2, 782, 783, 5, 353, 172, 2, 783, 784, 5, 341, 166, 2, 784, 785, 5, 335, 163, 2, 785, 786, 5, 339, 165, 2, 786, 787, 5, 327, 159, 2, 787, 134, 3, 2, 2, 2, 788, 789, 7, 43, 2, 2, 789, 136, 3, 2, 2, 2, 790, 791, 5, 357, 174, 2, 791, 792, 5, 353, 172, 2, 792, 793, 5, 359, 175, 2, 793, 794, 5, 327, 159, 2, 794, 138, 3, 2, 2, 2, 795, 796, 7, 63, 2, 2, 796, 797, 7, 63, 2, 2, 797, 140, 3, 2, 2, 2, 798, 799, 7, 35, 2, 2, 799, 800, 7, 63, 2, 2, 800, 142, 3, 2, 2, 2, 801, 802, 7, 62, 2, 2, 802, 144, 3, 2, 2, 2, 803, 804, 7, 62, 2, 2, 804, 805, 7, 63, 2, 2, 805, 146, 3, 2, 2, 2, 806, 807, 7, 64, 2, 2, 807, 148, 3, 2, 2, 2, 808, 809, 7, 64, 2, 2, 809, 810, 7, 63, 2, 2, 810, 150, 3, 2, 2, 2, 811, 812, 7, 45, 2, 2, 812, 152, 3, 2, 2, 2, 813, 814, 7, 47, 2, 2, 814, 154, 3, 2, 2, 2, 815, 816, 7, 44, 2, 2, 816, 156, 3, 2, 2, 2, 817, 818, 7, 49, 2, 2, 818, 158, 3, 2, 2, 2, 819, 820, 7, 39, 2, 2, 820, 160, 3, 2, 2, 2, 821, 822, 7, 93, 2, 2, 822, 823, 3, 2, 2, 2, 823, 824, 8, 76, 2, 2, 824, 825, 8, 76, 2, 2, 825, 162, 3, 2, 2, 2, 826, 827, 7, 95, 2, 2, 827, 828, 3, 2, 2, 2, 828, 829, 8, 77, 14, 2, 829, 830, 8, 77, 14, 2, 830, 164, 3, 2, 2, 2, 831, 835, 5, 71, 31, 2, 832, 834, 5, 87, 39, 2, 833, 832, 3, 2, 2, 2, 834, 837, 3, 2, 2, 2, 835, 833, 3, 2, 2, 2, 835, 836, 3, 2, 2, 2, 836, 848, 3, 2, 2, 2, 837, 835, 3, 2, 2, 2, 838, 841, 5, 85, 38, 2, 839, 841, 5, 79, 35, 2, 840, 838, 3, 2, 2, 2, 840, 839, 3, 2, 2, 2, 841, 843, 3, 2, 2, 2, 842, 844, 5, 87, 39, 2, 843, 842, 3, 2, 2, 2, 844, 845, 3, 2, 2, 2, 845, 843, 3, 2, 2, 2, 845, 846, 3, 2, 2, 2, 846, 848, 3, 2, 2, 2, 847, 831, 3, 2, 2, 2, 847, 840, 3, 2, 2, 2, 848, 166, 3, 2, 2, 2, 849, 851, 5, 81, 36, 2, 850, 852, 5, 83, 37, 2, 851, 850, 3, 2, 2, 2, 852, 853, 3, 2, 2, 2, 853, 851, 3, 2, 2, 2, 853, 854, 3, 2, 2, 2, 854, 855, 3, 2, 2, 2, 855, 856, 5, 81, 36, 2, 856, 168, 3, 2, 2, 2, 857, 858, 5, 51, 21, 2, 858, 859, 3, 2, 2, 2, 859, 860, 8, 80, 10, 2, 860, 170, 3, 2, 2, 2, 861, 862, 5, 53, 22, 2, 862, 863, 3, 2, 2, 2, 863, 864, 8, 81, 10, 2, 864, 172, 3, 2, 2, 2, 865, 866, 5, 55, 23, 2, 866, 867, 3, 2, 2, 2, 867, 868, 8, 82, 10, 2, 868, 174, 3, 2, 2, 2, 869, 870, 5, 67, 29, 2, 870, 871, 3, 2, 2, 2, 871, 872, 8, 83, 13, 2, 872, 873, 8, 83, 14, 2, 873, 176, 3, 2, 2, 2, 874, 875, 5, 161, 76, 2, 875, 876, 3, 2, 2, 2, 876, 877, 8, 84, 11, 2, 877, 178, 3, 2, 2, 2, 878, 879, 5, 163, 77, 2, 879, 880, 3, 2, 2, 2, 880, 881, 8, 85, 15, 2, 881, 180, 3, 2, 2, 2, 882, 883, 5, 103, 47, 2, 883, 884, 3, 2, 2, 2, 884, 885, 8, 86, 16, 2, 885, 182, 3, 2, 2, 2, 886, 887, 5, 101, 46, 2, 887, 888, 3, 2, 2, 2, 888, 889, 8, 87, 17, 2, 889, 184, 3, 2, 2, 2, 890, 891, 5, 343, 167, 2, 891, 892, 5, 327, 159, 2, 892, 893, 5, 357, 174, 2, 893, 894, 5, 319, 155, 2, 894, 895, 5, 325, 158, 2, 895, 896, 5, 319, 155, 2, 896, 897, 5, 357, 174, 2, 897, 898, 5, 319, 155, 2, 898, 186, 3, 2, 2, 2, 899, 903, 10, 12, 2, 2, 900, 901, 7, 49, 2, 2, 901, 903, 10, 13, 2, 2, 902, 899, 3, 2, 2, 2, 902, 900, 3, 2, 2, 2, 903, 188, 3, 2, 2, 2, 904, 906, 5, 187, 89, 2, 905, 904, 3, 2, 2, 2, 906, 907, 3, 2, 2, 2, 907, 905, 3, 2, 2, 2, 907, 908, 3, 2, 2, 2, 908, 190, 3, 2, 2, 2, 909, 910, 5, 167, 79, 2, 910, 911, 3, 2, 2, 2, 911, 912, 8, 91, 18, 2, 912, 192, 3, 2, 2, 2, 913, 914, 5, 51, 21, 2, 914, 915, 3, 2, 2, 2, 915, 916, 8, 92, 10, 2, 916, 194, 3, 2, 2, 2, 917, 918, 5, 53, 22, 2, 918, 919, 3, 2, 2, 2, 919, 920, 8, 93, 10, 2, 920, 196, 3, 2, 2, 2, 921, 922, 5, 55, 23, 2, 922, 923, 3, 2, 2, 2, 923, 924, 8, 94, 10, 2, 924, 198, 3, 2, 2, 2, 925, 926, 5, 67, 29, 2, 926, 927, 3, 2, 2, 2, 927, 928, 8, 95, 13, 2, 928, 929, 8, 95, 14, 2, 929, 200, 3, 2, 2, 2, 930, 931, 5, 107, 49, 2, 931, 932, 3, 2, 2, 2, 932, 933, 8, 96, 19, 2, 933, 202, 3, 2, 2, 2, 934, 935, 5, 103, 47, 2, 935, 936, 3, 2, 2, 2, 936, 937, 8, 97, 16, 2, 937, 204, 3, 2, 2, 2, 938, 943, 5, 71, 31, 2, 939, 943, 5, 69, 30, 2, 940, 943, 5, 85, 38, 2, 941, 943, 5, 155, 73, 2, 942, 938, 3, 2, 2, 2, 942, 939, 3, 2, 2, 2, 942, 940, 3, 2, 2, 2, 942, 941, 3, 2, 2, 2, 943, 206, 3, 2, 2, 2, 944, 947, 5, 71, 31, 2, 945, 947, 5, 155, 73, 2, 946, 944, 3, 2, 2, 2, 946, 945, 3, 2, 2, 2, 947, 951, 3, 2, 2, 2, 948, 950, 5, 205, 98, 2, 949, 948, 3, 2, 2, 2, 950, 953, 3, 2, 2, 2, 951, 949, 3, 2, 2, 2, 951, 952, 3, 2, 2, 2, 952, 964, 3, 2, 2, 2, 953, 951, 3, 2, 2, 2, 954, 957, 5, 85, 38, 2, 955, 957, 5, 79, 35, 2, 956, 954, 3, 2, 2, 2, 956, 955, 3, 2, 2, 2, 957, 959, 3, 2, 2, 2, 958, 960, 5, 205, 98, 2, 959, 958, 3, 2, 2, 2, 960, 961, 3, 2, 2, 2, 961, 959, 3, 2, 2, 2, 961, 962, 3, 2, 2, 2, 962, 964, 3, 2, 2, 2, 963, 946, 3, 2, 2, 2, 963, 956, 3, 2, 2, 2, 964, 208, 3, 2, 2, 2, 965, 966, 5, 207, 99, 2, 966, 967, 3, 2, 2, 2, 967, 968, 8, 100, 20, 2, 968, 210, 3, 2, 2, 2, 969, 970, 5, 167, 79, 2, 970, 971, 3, 2, 2, 2, 971, 972, 8, 101, 18, 2, 972, 212, 3, 2, 2, 2, 973, 974, 5, 51, 21, 2, 974, 975, 3, 2, 2, 2, 975, 976, 8, 102, 10, 2, 976, 214, 3, 2, 2, 2, 977, 978, 5, 53, 22, 2, 978, 979, 3, 2, 2, 2, 979, 980, 8, 103, 10, 2, 980, 216, 3, 2, 2, 2, 981, 982, 5, 55, 23, 2, 982, 983, 3, 2, 2, 2, 983, 984, 8, 104, 10, 2, 984, 218, 3, 2, 2, 2, 985, 986, 5, 67, 29, 2, 986, 987, 3, 2, 2, 2, 987, 988, 8, 105, 13, 2, 988, 989, 8, 105, 14, 2, 989, 220, 3, 2, 2, 2, 990, 991, 5, 101, 46, 2, 991, 992, 3, 2, 2, 2, 992, 993, 8, 106, 17, 2, 993, 222, 3, 2, 2, 2, 994, 995, 5, 103, 47, 2, 995, 996, 3, 2, 2, 2, 996, 997, 8, 107, 16, 2, 997, 224, 3, 2, 2, 2, 998, 999, 5, 107, 49, 2, 999, 1000, 3, 2, 2, 2, 1000, 1001, 8, 108, 19, 2, 1001, 226, 3, 2, 2, 2, 1002, 1003, 5, 319, 155, 2, 1003, 1004, 5, 355, 173, 2, 1004, 228, 3, 2, 2, 2, 1005, 1006, 5, 167, 79, 2, 1006, 1007, 3, 2, 2, 2, 1007, 1008, 8, 110, 18, 2, 1008, 230, 3, 2, 2, 2, 1009, 1010, 5, 207, 99, 2, 1010, 1011, 3, 2, 2, 2, 1011, 1012, 8, 111, 20, 2, 1012, 232, 3, 2, 2, 2, 1013, 1014, 5, 51, 21, 2, 1014, 1015, 3, 2, 2, 2, 1015, 1016, 8, 112, 10, 2, 1016, 234, 3, 2, 2, 2, 1017, 1018, 5, 53, 22, 2, 1018, 1019, 3, 2, 2, 2, 1019, 1020, 8, 113, 10, 2, 1020, 236, 3, 2, 2, 2, 1021, 1022, 5, 55, 23, 2, 1022, 1023, 3, 2, 2, 2, 1023, 1024, 8, 114, 10, 2, 1024, 238, 3, 2, 2, 2, 1025, 1026, 5, 67, 29, 2, 1026, 1027, 3, 2, 2, 2, 1027, 1028, 8, 115, 13, 2, 1028, 1029, 8, 115, 14, 2, 1029, 240, 3, 2, 2, 2, 1030, 1031, 5, 161, 76, 2, 1031, 1032, 3, 2, 2, 2, 1032, 1033, 8, 116, 11, 2, 1033, 1034, 8, 116, 21, 2, 1034, 242, 3, 2, 2, 2, 1035, 1036, 5, 347, 169, 2, 1036, 1037, 5, 345, 168, 2, 1037, 1038, 3, 2, 2, 2, 1038, 1039, 8, 117, 22, 2, 1039, 244, 3, 2, 2, 2, 1040, 1041, 5, 363, 177, 2, 1041, 1042, 5, 335, 163, 2, 1042, 1043, 5, 357, 174, 2, 1043, 1044, 5, 333, 162, 2, 1044, 1045, 3, 2, 2, 2, 1045, 1046, 8, 118, 22, 2, 1046, 246, 3, 2, 2, 2, 1047, 1048, 10, 14, 2, 2, 1048, 248, 3, 2, 2, 2, 1049, 1052, 5, 71, 31, 2, 1050, 1052, 5, 69, 30, 2, 1051, 1049, 3, 2, 2, 2, 1051, 1050, 3, 2, 2, 2, 1052, 1056, 3, 2, 2, 2, 1053, 1055, 5, 247, 119, 2, 1054, 1053, 3, 2, 2, 2, 1055, 1058, 3, 2, 2, 2, 1056, 1054, 3, 2, 2, 2, 1056, 1057, 3, 2, 2, 2, 1057, 250, 3, 2, 2, 2, 1058, 1056, 3, 2, 2, 2, 1059, 1060, 5, 167, 79, 2, 1060, 1061, 3, 2, 2, 2, 1061, 1062, 8, 121, 18, 2, 1062, 252, 3, 2, 2, 2, 1063, 1064, 5, 249, 120, 2, 1064, 1065, 3, 2, 2, 2, 1065, 1066, 8, 122, 23, 2, 1066, 254, 3, 2, 2, 2, 1067, 1068, 5, 51, 21, 2, 1068, 1069, 3, 2, 2, 2, 1069, 1070, 8, 123, 10, 2, 1070, 256, 3, 2, 2, 2, 1071, 1072, 5, 53, 22, 2, 1072, 1073, 3, 2, 2, 2, 1073, 1074, 8, 124, 10, 2, 1074, 258, 3, 2, 2, 2, 1075, 1076, 5, 55, 23, 2, 1076, 1077, 3, 2, 2, 2, 1077, 1078, 8, 125, 10, 2, 1078, 260, 3, 2, 2, 2, 1079, 1080, 5, 67, 29, 2, 1080, 1081, 3, 2, 2, 2, 1081, 1082, 8, 126, 13, 2, 1082, 1083, 8, 126, 14, 2, 1083, 1084, 8, 126, 14, 2, 1084, 262, 3, 2, 2, 2, 1085, 1086, 5, 101, 46, 2, 1086, 1087, 3, 2, 2, 2, 1087, 1088, 8, 127, 17, 2, 1088, 264, 3, 2, 2, 2, 1089, 1090, 5, 103, 47, 2, 1090, 1091, 3, 2, 2, 2, 1091, 1092, 8, 128, 16, 2, 1092, 266, 3, 2, 2, 2, 1093, 1094, 5, 107, 49, 2, 1094, 1095, 3, 2, 2, 2, 1095, 1096, 8, 129, 19, 2, 1096, 268, 3, 2, 2, 2, 1097, 1098, 5, 245, 118, 2, 1098, 1099, 3, 2, 2, 2, 1099, 1100, 8, 130, 24, 2, 1100, 270, 3, 2, 2, 2, 1101, 1102, 5, 207, 99, 2, 1102, 1103, 3, 2, 2, 2, 1103, 1104, 8, 131, 20, 2, 1104, 272, 3, 2, 2, 2, 1105, 1106, 5, 167, 79, 2, 1106, 1107, 3, 2, 2, 2, 1107, 1108, 8, 132, 18, 2, 1108, 274, 3, 2, 2, 2, 1109, 1110, 5, 51, 21, 2, 1110, 1111, 3, 2, 2, 2, 1111, 1112, 8, 133, 10, 2, 1112, 276, 3, 2, 2, 2, 1113, 1114, 5, 53, 22, 2, 1114, 1115, 3, 2, 2, 2, 1115, 1116, 8, 134, 10, 2, 1116, 278, 3, 2, 2, 2, 1117, 1118, 5, 55, 23, 2, 1118, 1119, 3, 2, 2, 2, 1119, 1120, 8, 135, 10, 2, 1120, 280, 3, 2, 2, 2, 1121, 1122, 5, 67, 29, 2, 1122, 1123, 3, 2, 2, 2, 1123, 1124, 8, 136, 13, 2, 1124, 1125, 8, 136, 14, 2, 1125, 282, 3, 2, 2, 2, 1126, 1127, 5, 107, 49, 2, 1127, 1128, 3, 2, 2, 2, 1128, 1129, 8, 137, 19, 2, 1129, 284, 3, 2, 2, 2, 1130, 1131, 5, 167, 79, 2, 1131, 1132, 3, 2, 2, 2, 1132, 1133, 8, 138, 18, 2, 1133, 286, 3, 2, 2, 2, 1134, 1135, 5, 165, 78, 2, 1135, 1136, 3, 2, 2, 2, 1136, 1137, 8, 139, 25, 2, 1137, 288, 3, 2, 2, 2, 1138, 1139, 5, 51, 21, 2, 1139, 1140, 3, 2, 2, 2, 1140, 1141, 8, 140, 10, 2, 1141, 290, 3, 2, 2, 2, 1142, 1143, 5, 53, 22, 2, 1143, 1144, 3, 2, 2, 2, 1144, 1145, 8, 141, 10, 2, 1145, 292, 3, 2, 2, 2, 1146, 1147, 5, 55, 23, 2, 1147, 1148, 3, 2, 2, 2, 1148, 1149, 8, 142, 10, 2, 1149, 294, 3, 2, 2, 2, 1150, 1151, 5, 67, 29, 2, 1151, 1152, 3, 2, 2, 2, 1152, 1153, 8, 143, 13, 2, 1153, 1154, 8, 143, 14, 2, 1154, 296, 3, 2, 2, 2, 1155, 1156, 5, 335, 163, 2, 1156, 1157, 5, 345, 168, 2, 1157, 1158, 5, 329, 160, 2, 1158, 1159, 5, 347, 169, 2, 1159, 298, 3, 2, 2, 2, 1160, 1161, 5, 329, 160, 2, 1161, 1162, 5, 359, 175, 2, 1162, 1163, 5, 345, 168, 2, 1163, 1164, 5, 323, 157, 2, 1164, 1165, 5, 357, 174, 2, 1165, 1166, 5, 335, 163, 2, 1166, 1167, 5, 347, 169, 2, 1167, 1168, 5, 345, 168, 2, 1168, 1169, 5, 355, 173, 2, 1169, 300, 3, 2, 2, 2, 1170, 1171, 5, 51, 21, 2, 1171, 1172, 3, 2, 2, 2, 1172, 1173, 8, 146, 10, 2, 1173, 302, 3, 2, 2, 2, 1174, 1175, 5, 53, 22, 2, 1175, 1176, 3, 2, 2, 2, 1176, 1177, 8, 147, 10, 2, 1177, 304, 3, 2, 2, 2, 1178, 1179, 5, 55, 23, 2, 1179, 1180, 3, 2, 2, 2, 1180, 1181, 8, 148, 10, 2, 1181, 306, 3, 2, 2, 2, 1182, 1183, 5, 163, 77, 2, 1183, 1184, 3, 2, 2, 2, 1184, 1185, 8, 149, 15, 2, 1185, 1186, 8, 149, 14, 2, 1186, 308, 3, 2, 2, 2, 1187, 1188, 7, 60, 2, 2, 1188, 310, 3, 2, 2, 2, 1189, 1195, 5, 79, 35, 2, 1190, 1195, 5, 69, 30, 2, 1191, 1195, 5, 107, 49, 2, 1192, 1195, 5, 71, 31, 2, 1193, 1195, 5, 85, 38, 2, 1194, 1189, 3, 2, 2, 2, 1194, 1190, 3, 2, 2, 2, 1194, 1191, 3, 2, 2, 2, 1194, 1192, 3, 2, 2, 2, 1194, 1193, 3, 2, 2, 2, 1195, 1196, 3, 2, 2, 2, 1196, 1194, 3, 2, 2, 2, 1196, 1197, 3, 2, 2, 2, 1197, 312, 3, 2, 2, 2, 1198, 1199, 5, 51, 21, 2, 1199, 1200, 3, 2, 2, 2, 1200, 1201, 8, 152, 10, 2, 1201, 314, 3, 2, 2, 2, 1202, 1203, 5, 53, 22, 2, 1203, 1204, 3, 2, 2, 2, 1204, 1205, 8, 153, 10, 2, 1205, 316, 3, 2, 2, 2, 1206, 1207, 5, 55, 23, 2, 1207, 1208, 3, 2, 2, 2, 1208, 1209, 8, 154, 10, 2, 1209, 318, 3, 2, 2, 2, 1210, 1211, 9, 15, 2, 2, 1211, 320, 3, 2, 2, 2, 1212, 1213, 9, 16, 2, 2, 1213, 322, 3, 2, 2, 2, 1214, 1215, 9, 17, 2, 2, 1215, 324, 3, 2, 2, 2, 1216, 1217, 9, 18, 2, 2, 1217, 326, 3, 2, 2, 2, 1218, 1219, 9, 9, 2, 2, 1219, 328, 3, 2, 2, 2, 1220, 1221, 9, 19, 2, 2, 1221, 330, 3, 2, 2, 2, 1222, 1223, 9, 20, 2, 2, 1223, 332, 3, 2, 2, 2, 1224, 1225, 9, 21, 2, 2, 1225, 334, 3, 2, 2, 2, 1226, 1227, 9, 22, 2, 2, 1227, 336, 3, 2, 2, 2, 1228, 1229, 9, 23, 2, 2, 1229, 338, 3, 2, 2, 2, 1230, 1231, 9, 24, 2, 2, 1231, 340, 3, 2, 2, 2, 1232, 1233, 9, 25, 2, 2, 1233, 342, 3, 2, 2, 2, 1234, 1235, 9, 26, 2, 2, 1235, 344, 3, 2, 2, 2, 1236, 1237, 9, 27, 2, 2, 1237, 346, 3, 2, 2, 2, 1238, 1239, 9, 28, 2, 2, 1239, 348, 3, 2, 2, 2, 1240, 1241, 9, 29, 2, 2, 1241, 350, 3, 2, 2, 2, 1242, 1243, 9, 30, 2, 2, 1243, 352, 3, 2, 2, 2, 1244, 1245, 9, 31, 2, 2, 1245, 354, 3, 2, 2, 2, 1246, 1247, 9, 32, 2, 2, 1247, 356, 3, 2, 2, 2, 1248, 1249, 9, 33, 2, 2, 1249, 358, 3, 2, 2, 2, 1250, 1251, 9, 34, 2, 2, 1251, 360, 3, 2, 2, 2, 1252, 1253, 9, 35, 2, 2, 1253, 362, 3, 2, 2, 2, 1254, 1255, 9, 36, 2, 2, 1255, 364, 3, 2, 2, 2, 1256, 1257, 9, 37, 2, 2, 1257, 366, 3, 2, 2, 2, 1258, 1259, 9, 38, 2, 2, 1259, 368, 3, 2, 2, 2, 1260, 1261, 9, 39, 2, 2, 1261, 370, 3, 2, 2, 2, 56, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 527, 537, 541, 544, 553, 555, 566, 607, 612, 621, 628, 633, 635, 646, 654, 657, 659, 664, 669, 675, 682, 687, 693, 696, 704, 708, 835, 840, 845, 847, 853, 902, 907, 942, 946, 951, 956, 961, 963, 1051, 1056, 1194, 1196, 26, 7, 4, 2, 7, 6, 2, 7, 8, 2, 7, 3, 2, 7, 5, 2, 7, 10, 2, 7, 7, 2, 7, 11, 2, 2, 3, 2, 9, 65, 2, 7, 2, 2, 9, 28, 2, 6, 2, 2, 9, 66, 2, 9, 36, 2, 9, 35, 2, 9, 68, 2, 9, 38, 2, 9, 77, 2, 7, 12, 2, 7, 9, 2, 9, 87, 2, 9, 86, 2, 9, 67, 2] \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.tokens b/packages/kbn-monaco/src/esql/antlr/esql_lexer.tokens index 85a98c3a6d268..073febb9e1783 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.tokens +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.tokens @@ -72,7 +72,7 @@ FROM_UNQUOTED_IDENTIFIER=71 FROM_LINE_COMMENT=72 FROM_MULTILINE_COMMENT=73 FROM_WS=74 -PROJECT_UNQUOTED_IDENTIFIER=75 +UNQUOTED_ID_PATTERN=75 PROJECT_LINE_COMMENT=76 PROJECT_MULTILINE_COMMENT=77 PROJECT_WS=78 @@ -82,20 +82,26 @@ RENAME_MULTILINE_COMMENT=81 RENAME_WS=82 ON=83 WITH=84 -ENRICH_LINE_COMMENT=85 -ENRICH_MULTILINE_COMMENT=86 -ENRICH_WS=87 -ENRICH_FIELD_LINE_COMMENT=88 -ENRICH_FIELD_MULTILINE_COMMENT=89 -ENRICH_FIELD_WS=90 -MVEXPAND_LINE_COMMENT=91 -MVEXPAND_MULTILINE_COMMENT=92 -MVEXPAND_WS=93 -INFO=94 -FUNCTIONS=95 -SHOW_LINE_COMMENT=96 -SHOW_MULTILINE_COMMENT=97 -SHOW_WS=98 +ENRICH_POLICY_NAME=85 +ENRICH_LINE_COMMENT=86 +ENRICH_MULTILINE_COMMENT=87 +ENRICH_WS=88 +ENRICH_FIELD_LINE_COMMENT=89 +ENRICH_FIELD_MULTILINE_COMMENT=90 +ENRICH_FIELD_WS=91 +MVEXPAND_LINE_COMMENT=92 +MVEXPAND_MULTILINE_COMMENT=93 +MVEXPAND_WS=94 +INFO=95 +FUNCTIONS=96 +SHOW_LINE_COMMENT=97 +SHOW_MULTILINE_COMMENT=98 +SHOW_WS=99 +COLON=100 +SETTING=101 +SETTING_LINE_COMMENT=102 +SETTTING_MULTILINE_COMMENT=103 +SETTING_WS=104 '|'=26 '='=33 ','=34 @@ -115,3 +121,4 @@ SHOW_WS=98 '/'=61 '%'=62 ']'=64 +':'=100 diff --git a/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts b/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts index 741ea56ba1408..220f6417faa08 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_lexer.ts @@ -91,7 +91,7 @@ export class esql_lexer extends Lexer { public static readonly FROM_LINE_COMMENT = 72; public static readonly FROM_MULTILINE_COMMENT = 73; public static readonly FROM_WS = 74; - public static readonly PROJECT_UNQUOTED_IDENTIFIER = 75; + public static readonly UNQUOTED_ID_PATTERN = 75; public static readonly PROJECT_LINE_COMMENT = 76; public static readonly PROJECT_MULTILINE_COMMENT = 77; public static readonly PROJECT_WS = 78; @@ -101,20 +101,26 @@ export class esql_lexer extends Lexer { public static readonly RENAME_WS = 82; public static readonly ON = 83; public static readonly WITH = 84; - public static readonly ENRICH_LINE_COMMENT = 85; - public static readonly ENRICH_MULTILINE_COMMENT = 86; - public static readonly ENRICH_WS = 87; - public static readonly ENRICH_FIELD_LINE_COMMENT = 88; - public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 89; - public static readonly ENRICH_FIELD_WS = 90; - public static readonly MVEXPAND_LINE_COMMENT = 91; - public static readonly MVEXPAND_MULTILINE_COMMENT = 92; - public static readonly MVEXPAND_WS = 93; - public static readonly INFO = 94; - public static readonly FUNCTIONS = 95; - public static readonly SHOW_LINE_COMMENT = 96; - public static readonly SHOW_MULTILINE_COMMENT = 97; - public static readonly SHOW_WS = 98; + public static readonly ENRICH_POLICY_NAME = 85; + public static readonly ENRICH_LINE_COMMENT = 86; + public static readonly ENRICH_MULTILINE_COMMENT = 87; + public static readonly ENRICH_WS = 88; + public static readonly ENRICH_FIELD_LINE_COMMENT = 89; + public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 90; + public static readonly ENRICH_FIELD_WS = 91; + public static readonly MVEXPAND_LINE_COMMENT = 92; + public static readonly MVEXPAND_MULTILINE_COMMENT = 93; + public static readonly MVEXPAND_WS = 94; + public static readonly INFO = 95; + public static readonly FUNCTIONS = 96; + public static readonly SHOW_LINE_COMMENT = 97; + public static readonly SHOW_MULTILINE_COMMENT = 98; + public static readonly SHOW_WS = 99; + public static readonly COLON = 100; + public static readonly SETTING = 101; + public static readonly SETTING_LINE_COMMENT = 102; + public static readonly SETTTING_MULTILINE_COMMENT = 103; + public static readonly SETTING_WS = 104; public static readonly EXPLAIN_MODE = 1; public static readonly EXPRESSION_MODE = 2; public static readonly FROM_MODE = 3; @@ -124,6 +130,7 @@ export class esql_lexer extends Lexer { public static readonly ENRICH_FIELD_MODE = 7; public static readonly MVEXPAND_MODE = 8; public static readonly SHOW_MODE = 9; + public static readonly SETTING_MODE = 10; // tslint:disable:no-trailing-whitespace public static readonly channelNames: string[] = [ @@ -133,7 +140,8 @@ export class esql_lexer extends Lexer { // tslint:disable:no-trailing-whitespace public static readonly modeNames: string[] = [ "DEFAULT_MODE", "EXPLAIN_MODE", "EXPRESSION_MODE", "FROM_MODE", "PROJECT_MODE", - "RENAME_MODE", "ENRICH_MODE", "ENRICH_FIELD_MODE", "MVEXPAND_MODE", "SHOW_MODE", + "RENAME_MODE", "ENRICH_MODE", "ENRICH_FIELD_MODE", "MVEXPAND_MODE", "SHOW_MODE", + "SETTING_MODE", ]; public static readonly ruleNames: string[] = [ @@ -153,21 +161,23 @@ export class esql_lexer extends Lexer { "FROM_COMMA", "FROM_ASSIGN", "METADATA", "FROM_UNQUOTED_IDENTIFIER_PART", "FROM_UNQUOTED_IDENTIFIER", "FROM_QUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", "FROM_WS", "PROJECT_PIPE", "PROJECT_DOT", "PROJECT_COMMA", - "UNQUOTED_ID_BODY_WITH_PATTERN", "PROJECT_UNQUOTED_IDENTIFIER", "PROJECT_QUOTED_IDENTIFIER", - "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", "PROJECT_WS", "RENAME_PIPE", - "RENAME_ASSIGN", "RENAME_COMMA", "RENAME_DOT", "AS", "RENAME_QUOTED_IDENTIFIER", - "RENAME_UNQUOTED_IDENTIFIER", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", - "RENAME_WS", "ENRICH_PIPE", "ON", "WITH", "ENRICH_POLICY_UNQUOTED_IDENTIFIER", - "ENRICH_QUOTED_IDENTIFIER", "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", + "UNQUOTED_ID_BODY_WITH_PATTERN", "UNQUOTED_ID_PATTERN", "PROJECT_UNQUOTED_IDENTIFIER", + "PROJECT_QUOTED_IDENTIFIER", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", + "PROJECT_WS", "RENAME_PIPE", "RENAME_ASSIGN", "RENAME_COMMA", "RENAME_DOT", + "AS", "RENAME_QUOTED_IDENTIFIER", "RENAME_UNQUOTED_IDENTIFIER", "RENAME_LINE_COMMENT", + "RENAME_MULTILINE_COMMENT", "RENAME_WS", "ENRICH_PIPE", "ENRICH_OPENING_BRACKET", + "ON", "WITH", "ENRICH_POLICY_NAME_BODY", "ENRICH_POLICY_NAME", "ENRICH_QUOTED_IDENTIFIER", + "ENRICH_MODE_UNQUOTED_VALUE", "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_PIPE", "ENRICH_FIELD_ASSIGN", "ENRICH_FIELD_COMMA", "ENRICH_FIELD_DOT", "ENRICH_FIELD_WITH", "ENRICH_FIELD_UNQUOTED_IDENTIFIER", "ENRICH_FIELD_QUOTED_IDENTIFIER", "ENRICH_FIELD_LINE_COMMENT", "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_PIPE", "MVEXPAND_DOT", "MVEXPAND_QUOTED_IDENTIFIER", "MVEXPAND_UNQUOTED_IDENTIFIER", "MVEXPAND_LINE_COMMENT", "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS", "SHOW_PIPE", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", - "SHOW_MULTILINE_COMMENT", "SHOW_WS", "A", "B", "C", "D", "E", "F", "G", - "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", - "V", "W", "X", "Y", "Z", + "SHOW_MULTILINE_COMMENT", "SHOW_WS", "SETTING_CLOSING_BRACKET", "COLON", + "SETTING", "SETTING_LINE_COMMENT", "SETTTING_MULTILINE_COMMENT", "SETTING_WS", + "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", + "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", ]; private static readonly _LITERAL_NAMES: Array = [ @@ -179,7 +189,12 @@ export class esql_lexer extends Lexer { "'.'", undefined, undefined, undefined, "'('", undefined, undefined, undefined, undefined, undefined, undefined, undefined, "'?'", undefined, "')'", undefined, "'=='", "'!='", "'<'", "'<='", "'>'", "'>='", "'+'", "'-'", "'*'", "'/'", - "'%'", undefined, "']'", + "'%'", undefined, "']'", undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, "':'", ]; private static readonly _SYMBOLIC_NAMES: Array = [ undefined, "DISSECT", "DROP", "ENRICH", "EVAL", "EXPLAIN", "FROM", "GROK", @@ -193,13 +208,14 @@ export class esql_lexer extends Lexer { "PERCENT", "OPENING_BRACKET", "CLOSING_BRACKET", "UNQUOTED_IDENTIFIER", "QUOTED_IDENTIFIER", "EXPR_LINE_COMMENT", "EXPR_MULTILINE_COMMENT", "EXPR_WS", "METADATA", "FROM_UNQUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", - "FROM_WS", "PROJECT_UNQUOTED_IDENTIFIER", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", + "FROM_WS", "UNQUOTED_ID_PATTERN", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", "PROJECT_WS", "AS", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", - "RENAME_WS", "ON", "WITH", "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", - "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", "ENRICH_FIELD_MULTILINE_COMMENT", - "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", "MVEXPAND_MULTILINE_COMMENT", - "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", "SHOW_MULTILINE_COMMENT", - "SHOW_WS", + "RENAME_WS", "ON", "WITH", "ENRICH_POLICY_NAME", "ENRICH_LINE_COMMENT", + "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", + "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", + "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", + "SHOW_MULTILINE_COMMENT", "SHOW_WS", "COLON", "SETTING", "SETTING_LINE_COMMENT", + "SETTTING_MULTILINE_COMMENT", "SETTING_WS", ]; public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(esql_lexer._LITERAL_NAMES, esql_lexer._SYMBOLIC_NAMES, []); @@ -233,592 +249,628 @@ export class esql_lexer extends Lexer { private static readonly _serializedATNSegments: number = 3; private static readonly _serializedATNSegment0: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02d\u04AC\b\x01" + - "\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\x04\x02\t\x02\x04" + - "\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07\t\x07\x04" + - "\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04\x0E\t\x0E" + - "\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04\x13\t\x13" + - "\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17\x04\x18\t\x18" + - "\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04\x1D\t\x1D" + - "\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#\t#\x04$\t" + - "$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04+\t+\x04,\t,\x04" + - "-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x044\t4\x045\t5\x04" + - "6\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04=\t=\x04>\t>\x04" + - "?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04F\tF\x04G\tG\x04" + - "H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04O\tO\x04P\tP\x04" + - "Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04X\tX\x04Y\tY\x04" + - "Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t`\x04a\ta\x04b\t" + - "b\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04i\ti\x04j\tj\x04" + - "k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04r\tr\x04s\ts\x04" + - "t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\tz\x04{\t{\x04|\t|\x04" + - "}\t}\x04~\t~\x04\x7F\t\x7F\x04\x80\t\x80\x04\x81\t\x81\x04\x82\t\x82\x04" + - "\x83\t\x83\x04\x84\t\x84\x04\x85\t\x85\x04\x86\t\x86\x04\x87\t\x87\x04" + - "\x88\t\x88\x04\x89\t\x89\x04\x8A\t\x8A\x04\x8B\t\x8B\x04\x8C\t\x8C\x04" + - "\x8D\t\x8D\x04\x8E\t\x8E\x04\x8F\t\x8F\x04\x90\t\x90\x04\x91\t\x91\x04" + - "\x92\t\x92\x04\x93\t\x93\x04\x94\t\x94\x04\x95\t\x95\x04\x96\t\x96\x04" + - "\x97\t\x97\x04\x98\t\x98\x04\x99\t\x99\x04\x9A\t\x9A\x04\x9B\t\x9B\x04" + - "\x9C\t\x9C\x04\x9D\t\x9D\x04\x9E\t\x9E\x04\x9F\t\x9F\x04\xA0\t\xA0\x04" + - "\xA1\t\xA1\x04\xA2\t\xA2\x04\xA3\t\xA3\x04\xA4\t\xA4\x04\xA5\t\xA5\x04" + - "\xA6\t\xA6\x04\xA7\t\xA7\x04\xA8\t\xA8\x04\xA9\t\xA9\x04\xAA\t\xAA\x03" + - "\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03" + - "\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x04\x03" + - "\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x05\x03" + - "\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06\x03\x06\x03" + - "\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07\x03\x07\x03" + - "\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\b\x03\b\x03\b\x03\b\x03\b\x03" + - "\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03" + - "\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03\v\x03" + - "\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03" + - "\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03\r\x03\r\x03" + - "\r\x03\r\x03\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03" + - "\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03\x0F\x03" + - "\x0F\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x11\x03" + - "\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03" + - "\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13\x03\x13\x03" + - "\x13\x03\x13\x03\x13\x03\x13\x03\x14\x06\x14\u01F9\n\x14\r\x14\x0E\x14" + - "\u01FA\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x15\x07\x15\u0203\n" + - "\x15\f\x15\x0E\x15\u0206\v\x15\x03\x15\x05\x15\u0209\n\x15\x03\x15\x05" + - "\x15\u020C\n\x15\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16" + - "\x07\x16\u0215\n\x16\f\x16\x0E\x16\u0218\v\x16\x03\x16\x03\x16\x03\x16" + - "\x03\x16\x03\x16\x03\x17\x06\x17\u0220\n\x17\r\x17\x0E\x17\u0221\x03\x17" + - "\x03\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x19\x03\x19\x03\x19" + - "\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B\x03\x1B\x03\x1B" + - "\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03\x1D\x03\x1D" + - "\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03 \x03 \x03 \x03!\x03!\x03\"\x03\"" + - "\x05\"\u024B\n\"\x03\"\x06\"\u024E\n\"\r\"\x0E\"\u024F\x03#\x03#\x03$" + - "\x03$\x03%\x03%\x03%\x05%\u0259\n%\x03&\x03&\x03\'\x03\'\x03\'\x05\'\u0260" + - "\n\'\x03(\x03(\x03(\x07(\u0265\n(\f(\x0E(\u0268\v(\x03(\x03(\x03(\x03" + - "(\x03(\x03(\x07(\u0270\n(\f(\x0E(\u0273\v(\x03(\x03(\x03(\x03(\x03(\x05" + - "(\u027A\n(\x03(\x05(\u027D\n(\x05(\u027F\n(\x03)\x06)\u0282\n)\r)\x0E" + - ")\u0283\x03*\x06*\u0287\n*\r*\x0E*\u0288\x03*\x03*\x07*\u028D\n*\f*\x0E" + - "*\u0290\v*\x03*\x03*\x06*\u0294\n*\r*\x0E*\u0295\x03*\x06*\u0299\n*\r" + - "*\x0E*\u029A\x03*\x03*\x07*\u029F\n*\f*\x0E*\u02A2\v*\x05*\u02A4\n*\x03" + - "*\x03*\x03*\x03*\x06*\u02AA\n*\r*\x0E*\u02AB\x03*\x03*\x05*\u02B0\n*\x03" + - "+\x03+\x03+\x03,\x03,\x03,\x03,\x03-\x03-\x03-\x03-\x03.\x03.\x03/\x03" + - "/\x030\x030\x030\x030\x030\x031\x031\x032\x032\x032\x032\x032\x032\x03" + - "3\x033\x033\x033\x033\x033\x034\x034\x034\x034\x034\x035\x035\x036\x03" + - "6\x036\x037\x037\x037\x038\x038\x038\x038\x038\x039\x039\x039\x039\x03" + - ":\x03:\x03:\x03:\x03:\x03;\x03;\x03;\x03;\x03;\x03;\x03<\x03<\x03<\x03" + - "=\x03=\x03>\x03>\x03>\x03>\x03>\x03>\x03?\x03?\x03@\x03@\x03@\x03@\x03" + - "@\x03A\x03A\x03A\x03B\x03B\x03B\x03C\x03C\x03D\x03D\x03D\x03E\x03E\x03" + - "F\x03F\x03F\x03G\x03G\x03H\x03H\x03I\x03I\x03J\x03J\x03K\x03K\x03L\x03" + - "L\x03L\x03L\x03L\x03M\x03M\x03M\x03M\x03M\x03N\x03N\x07N\u032D\nN\fN\x0E" + - "N\u0330\vN\x03N\x03N\x05N\u0334\nN\x03N\x06N\u0337\nN\rN\x0EN\u0338\x05" + - "N\u033B\nN\x03O\x03O\x06O\u033F\nO\rO\x0EO\u0340\x03O\x03O\x03P\x03P\x03" + - "P\x03P\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03S\x03S\x03S\x03S\x03" + - "S\x03T\x03T\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03U\x03U\x03V\x03" + - "V\x03V\x03V\x03W\x03W\x03W\x03W\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03" + - "X\x03X\x03Y\x03Y\x03Y\x05Y\u0376\nY\x03Z\x06Z\u0379\nZ\rZ\x0EZ\u037A\x03" + - "[\x03[\x03[\x03[\x03\\\x03\\\x03\\\x03\\\x03]\x03]\x03]\x03]\x03^\x03" + - "^\x03^\x03^\x03_\x03_\x03_\x03_\x03_\x03`\x03`\x03`\x03`\x03a\x03a\x03" + - "a\x03a\x03b\x03b\x03b\x03b\x05b\u039E\nb\x03c\x03c\x05c\u03A2\nc\x03c" + - "\x07c\u03A5\nc\fc\x0Ec\u03A8\vc\x03c\x03c\x05c\u03AC\nc\x03c\x06c\u03AF" + - "\nc\rc\x0Ec\u03B0\x05c\u03B3\nc\x03d\x03d\x03d\x03d\x03e\x03e\x03e\x03" + - "e\x03f\x03f\x03f\x03f\x03g\x03g\x03g\x03g\x03h\x03h\x03h\x03h\x03h\x03" + - "i\x03i\x03i\x03i\x03j\x03j\x03j\x03j\x03k\x03k\x03k\x03k\x03l\x03l\x03" + - "l\x03m\x03m\x03m\x03m\x03n\x03n\x03n\x03n\x03o\x03o\x03o\x03o\x03p\x03" + - "p\x03p\x03p\x03q\x03q\x03q\x03q\x03r\x03r\x03r\x03r\x03r\x03s\x03s\x03" + - "s\x03s\x03s\x03t\x03t\x03t\x03t\x03t\x03t\x03t\x03u\x03u\x03u\x03u\x03" + - "v\x03v\x03v\x03v\x03w\x03w\x03w\x03w\x03x\x03x\x03x\x03x\x03y\x03y\x03" + - "y\x03y\x03z\x03z\x03z\x03z\x03z\x03z\x03{\x03{\x03{\x03{\x03|\x03|\x03" + - "|\x03|\x03}\x03}\x03}\x03}\x03~\x03~\x03~\x03~\x03\x7F\x03\x7F\x03\x7F" + - "\x03\x7F\x03\x80\x03\x80\x03\x80\x03\x80\x03\x81\x03\x81\x03\x81\x03\x81" + - "\x03\x82\x03\x82\x03\x82\x03\x82\x03\x83\x03\x83\x03\x83\x03\x83\x03\x84" + - "\x03\x84\x03\x84\x03\x84\x03\x84\x03\x85\x03\x85\x03\x85\x03\x85\x03\x86" + - "\x03\x86\x03\x86\x03\x86\x03\x87\x03\x87\x03\x87\x03\x87\x03\x88\x03\x88" + - "\x03\x88\x03\x88\x03\x89\x03\x89\x03\x89\x03\x89\x03\x8A\x03\x8A\x03\x8A" + - "\x03\x8A\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03\x8C\x03\x8C\x03\x8C" + - "\x03\x8C\x03\x8C\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8D" + - "\x03\x8D\x03\x8D\x03\x8D\x03\x8E\x03\x8E\x03\x8E\x03\x8E\x03\x8F\x03\x8F" + - "\x03\x8F\x03\x8F\x03\x90\x03\x90\x03\x90\x03\x90\x03\x91\x03\x91\x03\x92" + - "\x03\x92\x03\x93\x03\x93\x03\x94\x03\x94\x03\x95\x03\x95\x03\x96\x03\x96" + - "\x03\x97\x03\x97\x03\x98\x03\x98\x03\x99\x03\x99\x03\x9A\x03\x9A\x03\x9B" + - "\x03\x9B\x03\x9C\x03\x9C\x03\x9D\x03\x9D\x03\x9E\x03\x9E\x03\x9F\x03\x9F" + - "\x03\xA0\x03\xA0\x03\xA1\x03\xA1\x03\xA2\x03\xA2\x03\xA3\x03\xA3\x03\xA4" + - "\x03\xA4\x03\xA5\x03\xA5\x03\xA6\x03\xA6\x03\xA7\x03\xA7\x03\xA8\x03\xA8" + - "\x03\xA9\x03\xA9\x03\xAA\x03\xAA\x04\u0216\u0271\x02\x02\xAB\f\x02\x03" + - "\x0E\x02\x04\x10\x02\x05\x12\x02\x06\x14\x02\x07\x16\x02\b\x18\x02\t\x1A" + - "\x02\n\x1C\x02\v\x1E\x02\f \x02\r\"\x02\x0E$\x02\x0F&\x02\x10(\x02\x11" + - "*\x02\x12,\x02\x13.\x02\x140\x02\x152\x02\x164\x02\x176\x02\x188\x02\x02" + - ":\x02\x02<\x02\x19>\x02\x1A@\x02\x1BB\x02\x1CD\x02\x02F\x02\x02H\x02\x02" + - "J\x02\x02L\x02\x02N\x02\x02P\x02\x02R\x02\x02T\x02\x02V\x02\x02X\x02\x1D" + - "Z\x02\x1E\\\x02\x1F^\x02 `\x02!b\x02\"d\x02#f\x02$h\x02%j\x02&l\x02\'" + - "n\x02(p\x02)r\x02*t\x02+v\x02,x\x02-z\x02.|\x02/~\x020\x80\x021\x82\x02" + - "2\x84\x023\x86\x024\x88\x025\x8A\x026\x8C\x027\x8E\x028\x90\x029\x92\x02" + - ":\x94\x02;\x96\x02<\x98\x02=\x9A\x02>\x9C\x02?\x9E\x02@\xA0\x02A\xA2\x02" + - "B\xA4\x02C\xA6\x02D\xA8\x02E\xAA\x02F\xAC\x02G\xAE\x02\x02\xB0\x02\x02" + - "\xB2\x02\x02\xB4\x02\x02\xB6\x02\x02\xB8\x02H\xBA\x02\x02\xBC\x02I\xBE" + - "\x02\x02\xC0\x02J\xC2\x02K\xC4\x02L\xC6\x02\x02\xC8\x02\x02\xCA\x02\x02" + - "\xCC\x02\x02\xCE\x02M\xD0\x02\x02\xD2\x02N\xD4\x02O\xD6\x02P\xD8\x02\x02" + - "\xDA\x02\x02\xDC\x02\x02\xDE\x02\x02\xE0\x02Q\xE2\x02\x02\xE4\x02\x02" + - "\xE6\x02R\xE8\x02S\xEA\x02T\xEC\x02\x02\xEE\x02U\xF0\x02V\xF2\x02\x02" + - "\xF4\x02\x02\xF6\x02W\xF8\x02X\xFA\x02Y\xFC\x02\x02\xFE\x02\x02\u0100" + - "\x02\x02\u0102\x02\x02\u0104\x02\x02\u0106\x02\x02\u0108\x02\x02\u010A" + - "\x02Z\u010C\x02[\u010E\x02\\\u0110\x02\x02\u0112\x02\x02\u0114\x02\x02" + - "\u0116\x02\x02\u0118\x02]\u011A\x02^\u011C\x02_\u011E\x02\x02\u0120\x02" + - "`\u0122\x02a\u0124\x02b\u0126\x02c\u0128\x02d\u012A\x02\x02\u012C\x02" + - "\x02\u012E\x02\x02\u0130\x02\x02\u0132\x02\x02\u0134\x02\x02\u0136\x02" + - "\x02\u0138\x02\x02\u013A\x02\x02\u013C\x02\x02\u013E\x02\x02\u0140\x02" + - "\x02\u0142\x02\x02\u0144\x02\x02\u0146\x02\x02\u0148\x02\x02\u014A\x02" + - "\x02\u014C\x02\x02\u014E\x02\x02\u0150\x02\x02\u0152\x02\x02\u0154\x02" + - "\x02\u0156\x02\x02\u0158\x02\x02\u015A\x02\x02\u015C\x02\x02\f\x02\x03" + - "\x04\x05\x06\x07\b\t\n\v\'\b\x02\v\f\x0F\x0F\"\"11]]__\x04\x02\f\f\x0F" + - "\x0F\x05\x02\v\f\x0F\x0F\"\"\x03\x022;\x04\x02C\\c|\x07\x02$$^^ppttvv" + - "\x06\x02\f\f\x0F\x0F$$^^\x04\x02GGgg\x04\x02--//\x03\x02bb\f\x02\v\f\x0F" + - "\x0F\"\"..11??]]__bb~~\x04\x02,,11\x04\x02CCcc\x04\x02DDdd\x04\x02EEe" + - "e\x04\x02FFff\x04\x02HHhh\x04\x02IIii\x04\x02JJjj\x04\x02KKkk\x04\x02" + - "LLll\x04\x02MMmm\x04\x02NNnn\x04\x02OOoo\x04\x02PPpp\x04\x02QQqq\x04\x02" + - "RRrr\x04\x02SSss\x04\x02TTtt\x04\x02UUuu\x04\x02VVvv\x04\x02WWww\x04\x02" + - "XXxx\x04\x02YYyy\x04\x02ZZzz\x04\x02[[{{\x04\x02\\\\||\x02\u04A8\x02\f" + - "\x03\x02\x02\x02\x02\x0E\x03\x02\x02\x02\x02\x10\x03\x02\x02\x02\x02\x12" + - "\x03\x02\x02\x02\x02\x14\x03\x02\x02\x02\x02\x16\x03\x02\x02\x02\x02\x18" + - "\x03\x02\x02\x02\x02\x1A\x03\x02\x02\x02\x02\x1C\x03\x02\x02\x02\x02\x1E" + - "\x03\x02\x02\x02\x02 \x03\x02\x02\x02\x02\"\x03\x02\x02\x02\x02$\x03\x02" + - "\x02\x02\x02&\x03\x02\x02\x02\x02(\x03\x02\x02\x02\x02*\x03\x02\x02\x02" + - "\x02,\x03\x02\x02\x02\x02.\x03\x02\x02\x02\x020\x03\x02\x02\x02\x022\x03" + - "\x02\x02\x02\x024\x03\x02\x02\x02\x026\x03\x02\x02\x02\x038\x03\x02\x02" + - "\x02\x03:\x03\x02\x02\x02\x03<\x03\x02\x02\x02\x03>\x03\x02\x02\x02\x03" + - "@\x03\x02\x02\x02\x04B\x03\x02\x02\x02\x04X\x03\x02\x02\x02\x04Z\x03\x02" + - "\x02\x02\x04\\\x03\x02\x02\x02\x04^\x03\x02\x02\x02\x04`\x03\x02\x02\x02" + - "\x04b\x03\x02\x02\x02\x04d\x03\x02\x02\x02\x04f\x03\x02\x02\x02\x04h\x03" + - "\x02\x02\x02\x04j\x03\x02\x02\x02\x04l\x03\x02\x02\x02\x04n\x03\x02\x02" + - "\x02\x04p\x03\x02\x02\x02\x04r\x03\x02\x02\x02\x04t\x03\x02\x02\x02\x04" + - "v\x03\x02\x02\x02\x04x\x03\x02\x02\x02\x04z\x03\x02\x02\x02\x04|\x03\x02" + - "\x02\x02\x04~\x03\x02\x02\x02\x04\x80\x03\x02\x02\x02\x04\x82\x03\x02" + - "\x02\x02\x04\x84\x03\x02\x02\x02\x04\x86\x03\x02\x02\x02\x04\x88\x03\x02" + - "\x02\x02\x04\x8A\x03\x02\x02\x02\x04\x8C\x03\x02\x02\x02\x04\x8E\x03\x02" + - "\x02\x02\x04\x90\x03\x02\x02\x02\x04\x92\x03\x02\x02\x02\x04\x94\x03\x02" + - "\x02\x02\x04\x96\x03\x02\x02\x02\x04\x98\x03\x02\x02\x02\x04\x9A\x03\x02" + - "\x02\x02\x04\x9C\x03\x02\x02\x02\x04\x9E\x03\x02\x02\x02\x04\xA0\x03\x02" + - "\x02\x02\x04\xA2\x03\x02\x02\x02\x04\xA4\x03\x02\x02\x02\x04\xA6\x03\x02" + - "\x02\x02\x04\xA8\x03\x02\x02\x02\x04\xAA\x03\x02\x02\x02\x04\xAC\x03\x02" + - "\x02\x02\x05\xAE\x03\x02\x02\x02\x05\xB0\x03\x02\x02\x02\x05\xB2\x03\x02" + - "\x02\x02\x05\xB4\x03\x02\x02\x02\x05\xB6\x03\x02\x02\x02\x05\xB8\x03\x02" + - "\x02\x02\x05\xBC\x03\x02\x02\x02\x05\xBE\x03\x02\x02\x02\x05\xC0\x03\x02" + - "\x02\x02\x05\xC2\x03\x02\x02\x02\x05\xC4\x03\x02\x02\x02\x06\xC6\x03\x02" + - "\x02\x02\x06\xC8\x03\x02\x02\x02\x06\xCA\x03\x02\x02\x02\x06\xCE\x03\x02" + - "\x02\x02\x06\xD0\x03\x02\x02\x02\x06\xD2\x03\x02\x02\x02\x06\xD4\x03\x02" + - "\x02\x02\x06\xD6\x03\x02\x02\x02\x07\xD8\x03\x02\x02\x02\x07\xDA\x03\x02" + - "\x02\x02\x07\xDC\x03\x02\x02\x02\x07\xDE\x03\x02\x02\x02\x07\xE0\x03\x02" + - "\x02\x02\x07\xE2\x03\x02\x02\x02\x07\xE4\x03\x02\x02\x02\x07\xE6\x03\x02" + - "\x02\x02\x07\xE8\x03\x02\x02\x02\x07\xEA\x03\x02\x02\x02\b\xEC\x03\x02" + - "\x02\x02\b\xEE\x03\x02\x02\x02\b\xF0\x03\x02\x02\x02\b\xF2\x03\x02\x02" + - "\x02\b\xF4\x03\x02\x02\x02\b\xF6\x03\x02\x02\x02\b\xF8\x03\x02\x02\x02" + - "\b\xFA\x03\x02\x02\x02\t\xFC\x03\x02\x02\x02\t\xFE\x03\x02\x02\x02\t\u0100" + - "\x03\x02\x02\x02\t\u0102\x03\x02\x02\x02\t\u0104\x03\x02\x02\x02\t\u0106" + - "\x03\x02\x02\x02\t\u0108\x03\x02\x02\x02\t\u010A\x03\x02\x02\x02\t\u010C" + - "\x03\x02\x02\x02\t\u010E\x03\x02\x02\x02\n\u0110\x03\x02\x02\x02\n\u0112" + - "\x03\x02\x02\x02\n\u0114\x03\x02\x02\x02\n\u0116\x03\x02\x02\x02\n\u0118" + - "\x03\x02\x02\x02\n\u011A\x03\x02\x02\x02\n\u011C\x03\x02\x02\x02\v\u011E" + - "\x03\x02\x02\x02\v\u0120\x03\x02\x02\x02\v\u0122\x03\x02\x02\x02\v\u0124" + - "\x03\x02\x02\x02\v\u0126\x03\x02\x02\x02\v\u0128\x03\x02\x02\x02\f\u015E" + - "\x03\x02\x02\x02\x0E\u0168\x03\x02\x02\x02\x10\u016F\x03\x02\x02\x02\x12" + - "\u0178\x03\x02\x02\x02\x14\u017F\x03\x02\x02\x02\x16\u0189\x03\x02\x02" + - "\x02\x18\u0190\x03\x02\x02\x02\x1A\u0197\x03\x02\x02\x02\x1C\u01A5\x03" + - "\x02\x02\x02\x1E\u01AC\x03\x02\x02\x02 \u01B4\x03\x02\x02\x02\"\u01C0" + - "\x03\x02\x02\x02$\u01CA\x03\x02\x02\x02&\u01D3\x03\x02\x02\x02(\u01D9" + - "\x03\x02\x02\x02*\u01E0\x03\x02\x02\x02,\u01E7\x03\x02\x02\x02.\u01EF" + - "\x03\x02\x02\x020\u01F8\x03\x02\x02\x022\u01FE\x03\x02\x02\x024\u020F" + - "\x03\x02\x02\x026\u021F\x03\x02\x02\x028\u0225\x03\x02\x02\x02:\u022A" + - "\x03\x02\x02\x02<\u022F\x03\x02\x02\x02>\u0233\x03\x02\x02\x02@\u0237" + - "\x03\x02\x02\x02B\u023B\x03\x02\x02\x02D\u023F\x03\x02\x02\x02F\u0241" + - "\x03\x02\x02\x02H\u0243\x03\x02\x02\x02J\u0246\x03\x02\x02\x02L\u0248" + - "\x03\x02\x02\x02N\u0251\x03\x02\x02\x02P\u0253\x03\x02\x02\x02R\u0258" + - "\x03\x02\x02\x02T\u025A\x03\x02\x02\x02V\u025F\x03\x02\x02\x02X\u027E" + - "\x03\x02\x02\x02Z\u0281\x03\x02\x02\x02\\\u02AF\x03\x02\x02\x02^\u02B1" + - "\x03\x02\x02\x02`\u02B4\x03\x02\x02\x02b\u02B8\x03\x02\x02\x02d\u02BC" + - "\x03\x02\x02\x02f\u02BE\x03\x02\x02\x02h\u02C0\x03\x02\x02\x02j\u02C5" + - "\x03\x02\x02\x02l\u02C7\x03\x02\x02\x02n\u02CD\x03\x02\x02\x02p\u02D3" + - "\x03\x02\x02\x02r\u02D8\x03\x02\x02\x02t\u02DA\x03\x02\x02\x02v\u02DD" + - "\x03\x02\x02\x02x\u02E0\x03\x02\x02\x02z\u02E5\x03\x02\x02\x02|\u02E9" + - "\x03\x02\x02\x02~\u02EE\x03\x02\x02\x02\x80\u02F4\x03\x02\x02\x02\x82" + - "\u02F7\x03\x02\x02\x02\x84\u02F9\x03\x02\x02\x02\x86\u02FF\x03\x02\x02" + - "\x02\x88\u0301\x03\x02\x02\x02\x8A\u0306\x03\x02\x02\x02\x8C\u0309\x03" + - "\x02\x02\x02\x8E\u030C\x03\x02\x02\x02\x90\u030E\x03\x02\x02\x02\x92\u0311" + - "\x03\x02\x02\x02\x94\u0313\x03\x02\x02\x02\x96\u0316\x03\x02\x02\x02\x98" + - "\u0318\x03\x02\x02\x02\x9A\u031A\x03\x02\x02\x02\x9C\u031C\x03\x02\x02" + - "\x02\x9E\u031E\x03\x02\x02\x02\xA0\u0320\x03\x02\x02\x02\xA2\u0325\x03" + - "\x02\x02\x02\xA4\u033A\x03\x02\x02\x02\xA6\u033C\x03\x02\x02\x02\xA8\u0344" + - "\x03\x02\x02\x02\xAA\u0348\x03\x02\x02\x02\xAC\u034C\x03\x02\x02\x02\xAE" + - "\u0350\x03\x02\x02\x02\xB0\u0355\x03\x02\x02\x02\xB2\u035B\x03\x02\x02" + - "\x02\xB4\u0361\x03\x02\x02\x02\xB6\u0365\x03\x02\x02\x02\xB8\u0369\x03" + - "\x02\x02\x02\xBA\u0375\x03\x02\x02\x02\xBC\u0378\x03\x02\x02\x02\xBE\u037C" + - "\x03\x02\x02\x02\xC0\u0380\x03\x02\x02\x02\xC2\u0384\x03\x02\x02\x02\xC4" + - "\u0388\x03\x02\x02\x02\xC6\u038C\x03\x02\x02\x02\xC8\u0391\x03\x02\x02" + - "\x02\xCA\u0395\x03\x02\x02\x02\xCC\u039D\x03\x02\x02\x02\xCE\u03B2\x03" + - "\x02\x02\x02\xD0\u03B4\x03\x02\x02\x02\xD2\u03B8\x03\x02\x02\x02\xD4\u03BC" + - "\x03\x02\x02\x02\xD6\u03C0\x03\x02\x02\x02\xD8\u03C4\x03\x02\x02\x02\xDA" + - "\u03C9\x03\x02\x02\x02\xDC\u03CD\x03\x02\x02\x02\xDE\u03D1\x03\x02\x02" + - "\x02\xE0\u03D5\x03\x02\x02\x02\xE2\u03D8\x03\x02\x02\x02\xE4\u03DC\x03" + - "\x02\x02\x02\xE6\u03E0\x03\x02\x02\x02\xE8\u03E4\x03\x02\x02\x02\xEA\u03E8" + - "\x03\x02\x02\x02\xEC\u03EC\x03\x02\x02\x02\xEE\u03F1\x03\x02\x02\x02\xF0" + - "\u03F6\x03\x02\x02\x02\xF2\u03FD\x03\x02\x02\x02\xF4\u0401\x03\x02\x02" + - "\x02\xF6\u0405\x03\x02\x02\x02\xF8\u0409\x03\x02\x02\x02\xFA\u040D\x03" + - "\x02\x02\x02\xFC\u0411\x03\x02\x02\x02\xFE\u0417\x03\x02\x02\x02\u0100" + - "\u041B\x03\x02\x02\x02\u0102\u041F\x03\x02\x02\x02\u0104\u0423\x03\x02" + - "\x02\x02\u0106\u0427\x03\x02\x02\x02\u0108\u042B\x03\x02\x02\x02\u010A" + - "\u042F\x03\x02\x02\x02\u010C\u0433\x03\x02\x02\x02\u010E\u0437\x03\x02" + - "\x02\x02\u0110\u043B\x03\x02\x02\x02\u0112\u0440\x03\x02\x02\x02\u0114" + - "\u0444\x03\x02\x02\x02\u0116\u0448\x03\x02\x02\x02\u0118\u044C\x03\x02" + - "\x02\x02\u011A\u0450\x03\x02\x02\x02\u011C\u0454\x03\x02\x02\x02\u011E" + - "\u0458\x03\x02\x02\x02\u0120\u045D\x03\x02\x02\x02\u0122\u0462\x03\x02" + - "\x02\x02\u0124\u046C\x03\x02\x02\x02\u0126\u0470\x03\x02\x02\x02\u0128" + - "\u0474\x03\x02\x02\x02\u012A\u0478\x03\x02\x02\x02\u012C\u047A\x03\x02" + - "\x02\x02\u012E\u047C\x03\x02\x02\x02\u0130\u047E\x03\x02\x02\x02\u0132" + - "\u0480\x03\x02\x02\x02\u0134\u0482\x03\x02\x02\x02\u0136\u0484\x03\x02" + - "\x02\x02\u0138\u0486\x03\x02\x02\x02\u013A\u0488\x03\x02\x02\x02\u013C" + - "\u048A\x03\x02\x02\x02\u013E\u048C\x03\x02\x02\x02\u0140\u048E\x03\x02" + - "\x02\x02\u0142\u0490\x03\x02\x02\x02\u0144\u0492\x03\x02\x02\x02\u0146" + - "\u0494\x03\x02\x02\x02\u0148\u0496\x03\x02\x02\x02\u014A\u0498\x03\x02" + - "\x02\x02\u014C\u049A\x03\x02\x02\x02\u014E\u049C\x03\x02\x02\x02\u0150" + - "\u049E\x03\x02"; + "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02j\u04EE\b\x01" + + "\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\b\x01\x04\x02\t" + + "\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07\t" + + "\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04\x0E" + + "\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04\x13" + + "\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t\x17\x04\x18" + + "\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x04\x1B\t\x1B\x04\x1C\t\x1C\x04\x1D" + + "\t\x1D\x04\x1E\t\x1E\x04\x1F\t\x1F\x04 \t \x04!\t!\x04\"\t\"\x04#\t#\x04" + + "$\t$\x04%\t%\x04&\t&\x04\'\t\'\x04(\t(\x04)\t)\x04*\t*\x04+\t+\x04,\t" + + ",\x04-\t-\x04.\t.\x04/\t/\x040\t0\x041\t1\x042\t2\x043\t3\x044\t4\x04" + + "5\t5\x046\t6\x047\t7\x048\t8\x049\t9\x04:\t:\x04;\t;\x04<\t<\x04=\t=\x04" + + ">\t>\x04?\t?\x04@\t@\x04A\tA\x04B\tB\x04C\tC\x04D\tD\x04E\tE\x04F\tF\x04" + + "G\tG\x04H\tH\x04I\tI\x04J\tJ\x04K\tK\x04L\tL\x04M\tM\x04N\tN\x04O\tO\x04" + + "P\tP\x04Q\tQ\x04R\tR\x04S\tS\x04T\tT\x04U\tU\x04V\tV\x04W\tW\x04X\tX\x04" + + "Y\tY\x04Z\tZ\x04[\t[\x04\\\t\\\x04]\t]\x04^\t^\x04_\t_\x04`\t`\x04a\t" + + "a\x04b\tb\x04c\tc\x04d\td\x04e\te\x04f\tf\x04g\tg\x04h\th\x04i\ti\x04" + + "j\tj\x04k\tk\x04l\tl\x04m\tm\x04n\tn\x04o\to\x04p\tp\x04q\tq\x04r\tr\x04" + + "s\ts\x04t\tt\x04u\tu\x04v\tv\x04w\tw\x04x\tx\x04y\ty\x04z\tz\x04{\t{\x04" + + "|\t|\x04}\t}\x04~\t~\x04\x7F\t\x7F\x04\x80\t\x80\x04\x81\t\x81\x04\x82" + + "\t\x82\x04\x83\t\x83\x04\x84\t\x84\x04\x85\t\x85\x04\x86\t\x86\x04\x87" + + "\t\x87\x04\x88\t\x88\x04\x89\t\x89\x04\x8A\t\x8A\x04\x8B\t\x8B\x04\x8C" + + "\t\x8C\x04\x8D\t\x8D\x04\x8E\t\x8E\x04\x8F\t\x8F\x04\x90\t\x90\x04\x91" + + "\t\x91\x04\x92\t\x92\x04\x93\t\x93\x04\x94\t\x94\x04\x95\t\x95\x04\x96" + + "\t\x96\x04\x97\t\x97\x04\x98\t\x98\x04\x99\t\x99\x04\x9A\t\x9A\x04\x9B" + + "\t\x9B\x04\x9C\t\x9C\x04\x9D\t\x9D\x04\x9E\t\x9E\x04\x9F\t\x9F\x04\xA0" + + "\t\xA0\x04\xA1\t\xA1\x04\xA2\t\xA2\x04\xA3\t\xA3\x04\xA4\t\xA4\x04\xA5" + + "\t\xA5\x04\xA6\t\xA6\x04\xA7\t\xA7\x04\xA8\t\xA8\x04\xA9\t\xA9\x04\xAA" + + "\t\xAA\x04\xAB\t\xAB\x04\xAC\t\xAC\x04\xAD\t\xAD\x04\xAE\t\xAE\x04\xAF" + + "\t\xAF\x04\xB0\t\xB0\x04\xB1\t\xB1\x04\xB2\t\xB2\x04\xB3\t\xB3\x04\xB4" + + "\t\xB4\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02" + + "\x03\x02\x03\x02\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03\x03" + + "\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04\x03\x04" + + "\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06" + + "\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x06\x03\x07" + + "\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\x07\x03\b\x03\b\x03\b\x03" + + "\b\x03\b\x03\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03" + + "\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03\n\x03\n\x03\n\x03\n\x03" + + "\n\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\v\x03\f\x03\f\x03\f\x03" + + "\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\f\x03\r\x03\r\x03\r\x03" + + "\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0E" + + "\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03\x0F\x03\x0F" + + "\x03\x0F\x03\x0F\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10\x03\x10" + + "\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x12\x03\x12" + + "\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13\x03\x13" + + "\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x14\x06\x14\u020E\n\x14\r" + + "\x14\x0E\x14\u020F\x03\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x15\x07" + + "\x15\u0218\n\x15\f\x15\x0E\x15\u021B\v\x15\x03\x15\x05\x15\u021E\n\x15" + + "\x03\x15\x05\x15\u0221\n\x15\x03\x15\x03\x15\x03\x16\x03\x16\x03\x16\x03" + + "\x16\x03\x16\x07\x16\u022A\n\x16\f\x16\x0E\x16\u022D\v\x16\x03\x16\x03" + + "\x16\x03\x16\x03\x16\x03\x16\x03\x17\x06\x17\u0235\n\x17\r\x17\x0E\x17" + + "\u0236\x03\x17\x03\x17\x03\x18\x03\x18\x03\x18\x03\x18\x03\x18\x03\x19" + + "\x03\x19\x03\x19\x03\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1B" + + "\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D" + + "\x03\x1D\x03\x1D\x03\x1E\x03\x1E\x03\x1F\x03\x1F\x03 \x03 \x03 \x03!\x03" + + "!\x03\"\x03\"\x05\"\u0260\n\"\x03\"\x06\"\u0263\n\"\r\"\x0E\"\u0264\x03" + + "#\x03#\x03$\x03$\x03%\x03%\x03%\x05%\u026E\n%\x03&\x03&\x03\'\x03\'\x03" + + "\'\x05\'\u0275\n\'\x03(\x03(\x03(\x07(\u027A\n(\f(\x0E(\u027D\v(\x03(" + + "\x03(\x03(\x03(\x03(\x03(\x07(\u0285\n(\f(\x0E(\u0288\v(\x03(\x03(\x03" + + "(\x03(\x03(\x05(\u028F\n(\x03(\x05(\u0292\n(\x05(\u0294\n(\x03)\x06)\u0297" + + "\n)\r)\x0E)\u0298\x03*\x06*\u029C\n*\r*\x0E*\u029D\x03*\x03*\x07*\u02A2" + + "\n*\f*\x0E*\u02A5\v*\x03*\x03*\x06*\u02A9\n*\r*\x0E*\u02AA\x03*\x06*\u02AE" + + "\n*\r*\x0E*\u02AF\x03*\x03*\x07*\u02B4\n*\f*\x0E*\u02B7\v*\x05*\u02B9" + + "\n*\x03*\x03*\x03*\x03*\x06*\u02BF\n*\r*\x0E*\u02C0\x03*\x03*\x05*\u02C5" + + "\n*\x03+\x03+\x03+\x03,\x03,\x03,\x03,\x03-\x03-\x03-\x03-\x03.\x03.\x03" + + "/\x03/\x030\x030\x030\x030\x030\x031\x031\x032\x032\x032\x032\x032\x03" + + "2\x033\x033\x033\x033\x033\x033\x034\x034\x034\x034\x034\x035\x035\x03" + + "6\x036\x036\x037\x037\x037\x038\x038\x038\x038\x038\x039\x039\x039\x03" + + "9\x03:\x03:\x03:\x03:\x03:\x03;\x03;\x03;\x03;\x03;\x03;\x03<\x03<\x03" + + "<\x03=\x03=\x03>\x03>\x03>\x03>\x03>\x03>\x03?\x03?\x03@\x03@\x03@\x03" + + "@\x03@\x03A\x03A\x03A\x03B\x03B\x03B\x03C\x03C\x03D\x03D\x03D\x03E\x03" + + "E\x03F\x03F\x03F\x03G\x03G\x03H\x03H\x03I\x03I\x03J\x03J\x03K\x03K\x03" + + "L\x03L\x03L\x03L\x03L\x03M\x03M\x03M\x03M\x03M\x03N\x03N\x07N\u0342\n" + + "N\fN\x0EN\u0345\vN\x03N\x03N\x05N\u0349\nN\x03N\x06N\u034C\nN\rN\x0EN" + + "\u034D\x05N\u0350\nN\x03O\x03O\x06O\u0354\nO\rO\x0EO\u0355\x03O\x03O\x03" + + "P\x03P\x03P\x03P\x03Q\x03Q\x03Q\x03Q\x03R\x03R\x03R\x03R\x03S\x03S\x03" + + "S\x03S\x03S\x03T\x03T\x03T\x03T\x03U\x03U\x03U\x03U\x03V\x03V\x03V\x03" + + "V\x03W\x03W\x03W\x03W\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03X\x03" + + "Y\x03Y\x03Y\x05Y\u0387\nY\x03Z\x06Z\u038A\nZ\rZ\x0EZ\u038B\x03[\x03[\x03" + + "[\x03[\x03\\\x03\\\x03\\\x03\\\x03]\x03]\x03]\x03]\x03^\x03^\x03^\x03" + + "^\x03_\x03_\x03_\x03_\x03_\x03`\x03`\x03`\x03`\x03a\x03a\x03a\x03a\x03" + + "b\x03b\x03b\x03b\x05b\u03AF\nb\x03c\x03c\x05c\u03B3\nc\x03c\x07c\u03B6" + + "\nc\fc\x0Ec\u03B9\vc\x03c\x03c\x05c\u03BD\nc\x03c\x06c\u03C0\nc\rc\x0E" + + "c\u03C1\x05c\u03C4\nc\x03d\x03d\x03d\x03d\x03e\x03e\x03e\x03e\x03f\x03" + + "f\x03f\x03f\x03g\x03g\x03g\x03g\x03h\x03h\x03h\x03h\x03i\x03i\x03i\x03" + + "i\x03i\x03j\x03j\x03j\x03j\x03k\x03k\x03k\x03k\x03l\x03l\x03l\x03l\x03" + + "m\x03m\x03m\x03n\x03n\x03n\x03n\x03o\x03o\x03o\x03o\x03p\x03p\x03p\x03" + + "p\x03q\x03q\x03q\x03q\x03r\x03r\x03r\x03r\x03s\x03s\x03s\x03s\x03s\x03" + + "t\x03t\x03t\x03t\x03t\x03u\x03u\x03u\x03u\x03u\x03v\x03v\x03v\x03v\x03" + + "v\x03v\x03v\x03w\x03w\x03x\x03x\x05x\u041C\nx\x03x\x07x\u041F\nx\fx\x0E" + + "x\u0422\vx\x03y\x03y\x03y\x03y\x03z\x03z\x03z\x03z\x03{\x03{\x03{\x03" + + "{\x03|\x03|\x03|\x03|\x03}\x03}\x03}\x03}\x03~\x03~\x03~\x03~\x03~\x03" + + "~\x03\x7F\x03\x7F\x03\x7F\x03\x7F\x03\x80\x03\x80\x03\x80\x03\x80\x03" + + "\x81\x03\x81\x03\x81\x03\x81\x03\x82\x03\x82\x03\x82\x03\x82\x03\x83\x03" + + "\x83\x03\x83\x03\x83\x03\x84\x03\x84\x03\x84\x03\x84\x03\x85\x03\x85\x03" + + "\x85\x03\x85\x03\x86\x03\x86\x03\x86\x03\x86\x03\x87\x03\x87\x03\x87\x03" + + "\x87\x03\x88\x03\x88\x03\x88\x03\x88\x03\x88\x03\x89\x03\x89\x03\x89\x03" + + "\x89\x03\x8A\x03\x8A\x03\x8A\x03\x8A\x03\x8B\x03\x8B\x03\x8B\x03\x8B\x03" + + "\x8C\x03\x8C\x03\x8C\x03\x8C\x03\x8D\x03\x8D\x03\x8D\x03\x8D\x03\x8E\x03" + + "\x8E\x03\x8E\x03\x8E\x03\x8F\x03\x8F\x03\x8F\x03\x8F\x03\x8F\x03\x90\x03" + + "\x90\x03\x90\x03\x90\x03\x90\x03\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03" + + "\x91\x03\x91\x03\x91\x03\x91\x03\x91\x03\x92\x03\x92\x03\x92\x03\x92\x03" + + "\x93\x03\x93\x03\x93\x03\x93\x03\x94\x03\x94\x03\x94\x03\x94\x03\x95\x03" + + "\x95\x03\x95\x03\x95\x03\x95\x03\x96\x03\x96\x03\x97\x03\x97\x03\x97\x03" + + "\x97\x03\x97\x06\x97\u04AB\n\x97\r\x97\x0E\x97\u04AC\x03\x98\x03\x98\x03" + + "\x98\x03\x98\x03\x99\x03\x99\x03\x99\x03\x99\x03\x9A\x03\x9A\x03\x9A\x03" + + "\x9A\x03\x9B\x03\x9B\x03\x9C\x03\x9C\x03\x9D\x03\x9D\x03\x9E\x03\x9E\x03" + + "\x9F\x03\x9F\x03\xA0\x03\xA0\x03\xA1\x03\xA1\x03\xA2\x03\xA2\x03\xA3\x03" + + "\xA3\x03\xA4\x03\xA4\x03\xA5\x03\xA5\x03\xA6\x03\xA6\x03\xA7\x03\xA7\x03" + + "\xA8\x03\xA8\x03\xA9\x03\xA9\x03\xAA\x03\xAA\x03\xAB\x03\xAB\x03\xAC\x03" + + "\xAC\x03\xAD\x03\xAD\x03\xAE\x03\xAE\x03\xAF\x03\xAF\x03\xB0\x03\xB0\x03" + + "\xB1\x03\xB1\x03\xB2\x03\xB2\x03\xB3\x03\xB3\x03\xB4\x03\xB4\x04\u022B" + + "\u0286\x02\x02\xB5\r\x02\x03\x0F\x02\x04\x11\x02\x05\x13\x02\x06\x15\x02" + + "\x07\x17\x02\b\x19\x02\t\x1B\x02\n\x1D\x02\v\x1F\x02\f!\x02\r#\x02\x0E" + + "%\x02\x0F\'\x02\x10)\x02\x11+\x02\x12-\x02\x13/\x02\x141\x02\x153\x02" + + "\x165\x02\x177\x02\x189\x02\x02;\x02\x02=\x02\x19?\x02\x1AA\x02\x1BC\x02" + + "\x1CE\x02\x02G\x02\x02I\x02\x02K\x02\x02M\x02\x02O\x02\x02Q\x02\x02S\x02" + + "\x02U\x02\x02W\x02\x02Y\x02\x1D[\x02\x1E]\x02\x1F_\x02 a\x02!c\x02\"e" + + "\x02#g\x02$i\x02%k\x02&m\x02\'o\x02(q\x02)s\x02*u\x02+w\x02,y\x02-{\x02" + + ".}\x02/\x7F\x020\x81\x021\x83\x022\x85\x023\x87\x024\x89\x025\x8B\x02" + + "6\x8D\x027\x8F\x028\x91\x029\x93\x02:\x95\x02;\x97\x02<\x99\x02=\x9B\x02" + + ">\x9D\x02?\x9F\x02@\xA1\x02A\xA3\x02B\xA5\x02C\xA7\x02D\xA9\x02E\xAB\x02" + + "F\xAD\x02G\xAF\x02\x02\xB1\x02\x02\xB3\x02\x02\xB5\x02\x02\xB7\x02\x02" + + "\xB9\x02H\xBB\x02\x02\xBD\x02I\xBF\x02\x02\xC1\x02J\xC3\x02K\xC5\x02L" + + "\xC7\x02\x02\xC9\x02\x02\xCB\x02\x02\xCD\x02\x02\xCF\x02M\xD1\x02\x02" + + "\xD3\x02\x02\xD5\x02N\xD7\x02O\xD9\x02P\xDB\x02\x02\xDD\x02\x02\xDF\x02" + + "\x02\xE1\x02\x02\xE3\x02Q\xE5\x02\x02\xE7\x02\x02\xE9\x02R\xEB\x02S\xED" + + "\x02T\xEF\x02\x02\xF1\x02\x02\xF3\x02U\xF5\x02V\xF7\x02\x02\xF9\x02W\xFB" + + "\x02\x02\xFD\x02\x02\xFF\x02X\u0101\x02Y\u0103\x02Z\u0105\x02\x02\u0107" + + "\x02\x02\u0109\x02\x02\u010B\x02\x02\u010D\x02\x02\u010F\x02\x02\u0111" + + "\x02\x02\u0113\x02[\u0115\x02\\\u0117\x02]\u0119\x02\x02\u011B\x02\x02" + + "\u011D\x02\x02\u011F\x02\x02\u0121\x02^\u0123\x02_\u0125\x02`\u0127\x02" + + "\x02\u0129\x02a\u012B\x02b\u012D\x02c\u012F\x02d\u0131\x02e\u0133\x02" + + "\x02\u0135\x02f\u0137\x02g\u0139\x02h\u013B\x02i\u013D\x02j\u013F\x02" + + "\x02\u0141\x02\x02\u0143\x02\x02\u0145\x02\x02\u0147\x02\x02\u0149\x02" + + "\x02\u014B\x02\x02\u014D\x02\x02\u014F\x02\x02\u0151\x02\x02\u0153\x02" + + "\x02\u0155\x02\x02\u0157\x02\x02\u0159\x02\x02\u015B\x02\x02\u015D\x02" + + "\x02\u015F\x02\x02\u0161\x02\x02\u0163\x02\x02\u0165\x02\x02\u0167\x02" + + "\x02\u0169\x02\x02\u016B\x02\x02\u016D\x02\x02\u016F\x02\x02\u0171\x02" + + "\x02\r\x02\x03\x04\x05\x06\x07\b\t\n\v\f(\b\x02\v\f\x0F\x0F\"\"11]]__" + + "\x04\x02\f\f\x0F\x0F\x05\x02\v\f\x0F\x0F\"\"\x03\x022;\x04\x02C\\c|\x07" + + "\x02$$^^ppttvv\x06\x02\f\f\x0F\x0F$$^^\x04\x02GGgg\x04\x02--//\x03\x02" + + "bb\f\x02\v\f\x0F\x0F\"\"..11??]]__bb~~\x04\x02,,11\r\x02\v\f\x0F\x0F\"" + + "\"$%..11<<>>@A^^~~\x04\x02CCcc\x04\x02DDdd\x04\x02EEee\x04\x02FFff\x04" + + "\x02HHhh\x04\x02IIii\x04\x02JJjj\x04\x02KKkk\x04\x02LLll\x04\x02MMmm\x04" + + "\x02NNnn\x04\x02OOoo\x04\x02PPpp\x04\x02QQqq\x04\x02RRrr\x04\x02SSss\x04" + + "\x02TTtt\x04\x02UUuu\x04\x02VVvv\x04\x02WWww\x04\x02XXxx\x04\x02YYyy\x04" + + "\x02ZZzz\x04\x02[[{{\x04\x02\\\\||\x02\u04EF\x02\r\x03\x02\x02\x02\x02" + + "\x0F\x03\x02\x02\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02" + + "\x15\x03\x02\x02\x02\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02" + + "\x1B\x03\x02\x02\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02" + + "!\x03\x02\x02\x02\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03" + + "\x02\x02\x02\x02)\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-\x03\x02\x02" + + "\x02\x02/\x03\x02\x02\x02\x021\x03\x02\x02\x02\x023\x03\x02\x02\x02\x02" + + "5\x03\x02\x02\x02\x027\x03\x02\x02\x02\x039\x03\x02\x02\x02\x03;\x03\x02" + + "\x02\x02\x03=\x03\x02\x02\x02\x03?\x03\x02\x02\x02\x03A\x03\x02\x02\x02" + + "\x04C\x03\x02\x02\x02\x04Y\x03\x02\x02\x02\x04[\x03\x02\x02\x02\x04]\x03" + + "\x02\x02\x02\x04_\x03\x02\x02\x02\x04a\x03\x02\x02\x02\x04c\x03\x02\x02" + + "\x02\x04e\x03\x02\x02\x02\x04g\x03\x02\x02\x02\x04i\x03\x02\x02\x02\x04" + + "k\x03\x02\x02\x02\x04m\x03\x02\x02\x02\x04o\x03\x02\x02\x02\x04q\x03\x02" + + "\x02\x02\x04s\x03\x02\x02\x02\x04u\x03\x02\x02\x02\x04w\x03\x02\x02\x02" + + "\x04y\x03\x02\x02\x02\x04{\x03\x02\x02\x02\x04}\x03\x02\x02\x02\x04\x7F" + + "\x03\x02\x02\x02\x04\x81\x03\x02\x02\x02\x04\x83\x03\x02\x02\x02\x04\x85" + + "\x03\x02\x02\x02\x04\x87\x03\x02\x02\x02\x04\x89\x03\x02\x02\x02\x04\x8B" + + "\x03\x02\x02\x02\x04\x8D\x03\x02\x02\x02\x04\x8F\x03\x02\x02\x02\x04\x91" + + "\x03\x02\x02\x02\x04\x93\x03\x02\x02\x02\x04\x95\x03\x02\x02\x02\x04\x97" + + "\x03\x02\x02\x02\x04\x99\x03\x02\x02\x02\x04\x9B\x03\x02\x02\x02\x04\x9D" + + "\x03\x02\x02\x02\x04\x9F\x03\x02\x02\x02\x04\xA1\x03\x02\x02\x02\x04\xA3" + + "\x03\x02\x02\x02\x04\xA5\x03\x02\x02\x02\x04\xA7\x03\x02\x02\x02\x04\xA9" + + "\x03\x02\x02\x02\x04\xAB\x03\x02\x02\x02\x04\xAD\x03\x02\x02\x02\x05\xAF" + + "\x03\x02\x02\x02\x05\xB1\x03\x02\x02\x02\x05\xB3\x03\x02\x02\x02\x05\xB5" + + "\x03\x02\x02\x02\x05\xB7\x03\x02\x02\x02\x05\xB9\x03\x02\x02\x02\x05\xBD" + + "\x03\x02\x02\x02\x05\xBF\x03\x02\x02\x02\x05\xC1\x03\x02\x02\x02\x05\xC3" + + "\x03\x02\x02\x02\x05\xC5\x03\x02\x02\x02\x06\xC7\x03\x02\x02\x02\x06\xC9" + + "\x03\x02\x02\x02\x06\xCB\x03\x02\x02\x02\x06\xCF\x03\x02\x02\x02\x06\xD1" + + "\x03\x02\x02\x02\x06\xD3\x03\x02\x02\x02\x06\xD5\x03\x02\x02\x02\x06\xD7" + + "\x03\x02\x02\x02\x06\xD9\x03\x02\x02\x02\x07\xDB\x03\x02\x02\x02\x07\xDD" + + "\x03\x02\x02\x02\x07\xDF\x03\x02\x02\x02\x07\xE1\x03\x02\x02\x02\x07\xE3" + + "\x03\x02\x02\x02\x07\xE5\x03\x02\x02\x02\x07\xE7\x03\x02\x02\x02\x07\xE9" + + "\x03\x02\x02\x02\x07\xEB\x03\x02\x02\x02\x07\xED\x03\x02\x02\x02\b\xEF" + + "\x03\x02\x02\x02\b\xF1\x03\x02\x02\x02\b\xF3\x03\x02\x02\x02\b\xF5\x03" + + "\x02\x02\x02\b\xF9\x03\x02\x02\x02\b\xFB\x03\x02\x02\x02\b\xFD\x03\x02" + + "\x02\x02\b\xFF\x03\x02\x02\x02\b\u0101\x03\x02\x02\x02\b\u0103\x03\x02" + + "\x02\x02\t\u0105\x03\x02\x02\x02\t\u0107\x03\x02\x02\x02\t\u0109\x03\x02" + + "\x02\x02\t\u010B\x03\x02\x02\x02\t\u010D\x03\x02\x02\x02\t\u010F\x03\x02" + + "\x02\x02\t\u0111\x03\x02\x02\x02\t\u0113\x03\x02\x02\x02\t\u0115\x03\x02" + + "\x02\x02\t\u0117\x03\x02\x02\x02\n\u0119\x03\x02\x02\x02\n\u011B\x03\x02" + + "\x02\x02\n\u011D\x03\x02\x02\x02\n\u011F\x03\x02\x02\x02\n\u0121\x03\x02" + + "\x02\x02\n\u0123\x03\x02\x02\x02\n\u0125\x03\x02\x02\x02\v\u0127\x03\x02" + + "\x02\x02\v\u0129\x03\x02\x02\x02\v\u012B\x03\x02\x02\x02\v\u012D\x03\x02" + + "\x02\x02\v\u012F\x03\x02\x02\x02\v\u0131\x03\x02\x02\x02\f\u0133\x03\x02" + + "\x02\x02\f\u0135\x03\x02\x02\x02\f\u0137\x03\x02\x02\x02\f\u0139\x03\x02" + + "\x02\x02\f\u013B\x03\x02\x02\x02\f\u013D\x03\x02\x02\x02\r\u0173\x03\x02" + + "\x02\x02\x0F\u017D\x03\x02\x02\x02\x11\u0184\x03\x02\x02\x02\x13\u018D" + + "\x03\x02\x02\x02\x15\u0194\x03\x02\x02\x02\x17\u019E\x03\x02\x02\x02\x19" + + "\u01A5\x03\x02\x02\x02\x1B\u01AC\x03\x02\x02\x02\x1D\u01BA\x03\x02\x02" + + "\x02\x1F\u01C1\x03\x02\x02\x02!\u01C9\x03\x02\x02\x02#\u01D5\x03\x02\x02" + + "\x02%\u01DF\x03\x02\x02\x02\'\u01E8\x03\x02\x02\x02)\u01EE\x03\x02\x02" + + "\x02+\u01F5\x03\x02\x02\x02-\u01FC\x03\x02\x02\x02/\u0204\x03\x02\x02" + + "\x021\u020D\x03\x02\x02\x023\u0213\x03\x02\x02\x025\u0224\x03\x02\x02" + + "\x027\u0234\x03\x02\x02\x029\u023A\x03\x02\x02\x02;\u023F\x03\x02\x02" + + "\x02=\u0244\x03\x02\x02\x02?\u0248\x03\x02\x02\x02A\u024C\x03\x02\x02" + + "\x02C\u0250\x03\x02\x02\x02E\u0254\x03\x02\x02\x02G\u0256\x03\x02\x02" + + "\x02I\u0258\x03\x02\x02\x02K\u025B\x03\x02\x02\x02M\u025D\x03\x02\x02" + + "\x02O\u0266\x03\x02\x02\x02Q\u0268\x03\x02\x02\x02S\u026D\x03\x02\x02" + + "\x02U\u026F\x03\x02\x02\x02W\u0274\x03\x02\x02\x02Y\u0293\x03\x02\x02" + + "\x02[\u0296\x03\x02\x02\x02]\u02C4\x03\x02\x02\x02_\u02C6\x03\x02\x02" + + "\x02a\u02C9\x03\x02\x02\x02c\u02CD\x03\x02\x02\x02e\u02D1\x03\x02\x02" + + "\x02g\u02D3\x03\x02\x02\x02i\u02D5\x03\x02\x02\x02k\u02DA\x03\x02\x02" + + "\x02m\u02DC\x03\x02\x02\x02o\u02E2\x03\x02\x02\x02q\u02E8\x03\x02\x02" + + "\x02s\u02ED\x03\x02\x02\x02u\u02EF\x03\x02\x02\x02w\u02F2\x03\x02\x02" + + "\x02y\u02F5\x03\x02\x02\x02{\u02FA\x03\x02\x02\x02}\u02FE\x03\x02\x02" + + "\x02\x7F\u0303\x03\x02\x02\x02\x81\u0309\x03\x02\x02\x02\x83\u030C\x03" + + "\x02\x02\x02\x85\u030E\x03\x02\x02\x02\x87\u0314\x03\x02\x02\x02\x89\u0316" + + "\x03\x02\x02\x02\x8B\u031B\x03\x02\x02\x02\x8D\u031E\x03\x02\x02\x02\x8F" + + "\u0321\x03\x02\x02\x02\x91\u0323\x03\x02\x02\x02\x93\u0326\x03\x02\x02" + + "\x02\x95\u0328\x03\x02\x02\x02\x97\u032B\x03\x02\x02\x02\x99\u032D\x03" + + "\x02\x02\x02\x9B\u032F\x03\x02\x02\x02\x9D\u0331\x03\x02\x02\x02\x9F\u0333" + + "\x03\x02\x02\x02\xA1\u0335\x03\x02\x02\x02\xA3\u033A\x03\x02\x02\x02\xA5" + + "\u034F\x03\x02\x02\x02\xA7\u0351\x03\x02\x02\x02\xA9\u0359\x03\x02\x02" + + "\x02\xAB\u035D\x03\x02\x02\x02\xAD\u0361\x03\x02\x02\x02\xAF\u0365\x03" + + "\x02\x02\x02\xB1\u036A\x03\x02\x02\x02\xB3\u036E\x03\x02\x02\x02\xB5\u0372" + + "\x03\x02\x02\x02\xB7\u0376\x03\x02\x02\x02\xB9\u037A\x03\x02\x02\x02\xBB" + + "\u0386\x03\x02\x02\x02\xBD\u0389\x03\x02\x02\x02\xBF\u038D\x03\x02\x02" + + "\x02\xC1\u0391\x03\x02\x02\x02\xC3\u0395\x03\x02\x02\x02\xC5\u0399\x03" + + "\x02\x02\x02\xC7\u039D\x03\x02\x02\x02\xC9\u03A2\x03\x02\x02\x02\xCB\u03A6" + + "\x03\x02\x02\x02\xCD\u03AE\x03\x02\x02\x02\xCF\u03C3\x03\x02\x02\x02\xD1" + + "\u03C5\x03\x02\x02\x02\xD3\u03C9\x03\x02\x02\x02\xD5\u03CD\x03\x02\x02" + + "\x02\xD7\u03D1\x03\x02\x02\x02\xD9\u03D5\x03\x02\x02\x02\xDB\u03D9\x03" + + "\x02\x02\x02\xDD\u03DE\x03\x02\x02\x02\xDF\u03E2\x03\x02\x02\x02\xE1\u03E6" + + "\x03\x02\x02\x02\xE3\u03EA\x03\x02\x02\x02\xE5\u03ED\x03\x02\x02\x02\xE7" + + "\u03F1\x03\x02\x02\x02\xE9\u03F5\x03\x02\x02\x02\xEB\u03F9\x03\x02\x02" + + "\x02\xED\u03FD\x03\x02\x02\x02\xEF\u0401\x03\x02\x02\x02\xF1\u0406\x03" + + "\x02\x02\x02\xF3\u040B\x03\x02\x02\x02\xF5\u0410\x03\x02\x02\x02\xF7\u0417" + + "\x03\x02\x02\x02\xF9\u041B\x03\x02\x02\x02\xFB\u0423\x03\x02\x02\x02\xFD" + + "\u0427\x03\x02\x02\x02\xFF\u042B\x03\x02"; private static readonly _serializedATNSegment1: string = - "\x02\x02\u0152\u04A0\x03\x02\x02\x02\u0154\u04A2\x03\x02\x02\x02\u0156" + - "\u04A4\x03\x02\x02\x02\u0158\u04A6\x03\x02\x02\x02\u015A\u04A8\x03\x02" + - "\x02\x02\u015C\u04AA\x03\x02\x02\x02\u015E\u015F\x05\u0130\x94\x02\u015F" + - "\u0160\x05\u013A\x99\x02\u0160\u0161\x05\u014E\xA3\x02\u0161\u0162\x05" + - "\u014E\xA3\x02\u0162\u0163\x05\u0132\x95\x02\u0163\u0164\x05\u012E\x93" + - "\x02\u0164\u0165\x05\u0150\xA4\x02\u0165\u0166\x03\x02\x02\x02\u0166\u0167" + - "\b\x02\x02\x02\u0167\r\x03\x02\x02\x02\u0168\u0169\x05\u0130\x94\x02\u0169" + - "\u016A\x05\u014C\xA2\x02\u016A\u016B\x05\u0146\x9F\x02\u016B\u016C\x05" + - "\u0148\xA0\x02\u016C\u016D\x03\x02\x02\x02\u016D\u016E\b\x03\x03\x02\u016E" + - "\x0F\x03\x02\x02\x02\u016F\u0170\x05\u0132\x95\x02\u0170\u0171\x05\u0144" + - "\x9E\x02\u0171\u0172\x05\u014C\xA2\x02\u0172\u0173\x05\u013A\x99\x02\u0173" + - "\u0174\x05\u012E\x93\x02\u0174\u0175\x05\u0138\x98\x02\u0175\u0176\x03" + - "\x02\x02\x02\u0176\u0177\b\x04\x04\x02\u0177\x11\x03\x02\x02\x02\u0178" + - "\u0179\x05\u0132\x95\x02\u0179\u017A\x05\u0154\xA6\x02\u017A\u017B\x05" + - "\u012A\x91\x02\u017B\u017C\x05\u0140\x9C\x02\u017C\u017D\x03\x02\x02\x02" + - "\u017D\u017E\b\x05\x02\x02\u017E\x13\x03\x02\x02\x02\u017F\u0180\x05\u0132" + - "\x95\x02\u0180\u0181\x05\u0158\xA8\x02\u0181\u0182\x05\u0148\xA0\x02\u0182" + - "\u0183\x05\u0140\x9C\x02\u0183\u0184\x05\u012A\x91\x02\u0184\u0185\x05" + - "\u013A\x99\x02\u0185\u0186\x05\u0144\x9E\x02\u0186\u0187\x03\x02\x02\x02" + - "\u0187\u0188\b\x06\x05\x02\u0188\x15\x03\x02\x02\x02\u0189\u018A\x05\u0134" + - "\x96\x02\u018A\u018B\x05\u014C\xA2\x02\u018B\u018C\x05\u0146\x9F\x02\u018C" + - "\u018D\x05\u0142\x9D\x02\u018D\u018E\x03\x02\x02\x02\u018E\u018F\b\x07" + - "\x06\x02\u018F\x17\x03\x02\x02\x02\u0190\u0191\x05\u0136\x97\x02\u0191" + - "\u0192\x05\u014C\xA2\x02\u0192\u0193\x05\u0146\x9F\x02\u0193\u0194\x05" + - "\u013E\x9B\x02\u0194\u0195\x03\x02\x02\x02\u0195\u0196\b\b\x02\x02\u0196" + - "\x19\x03\x02\x02\x02\u0197\u0198\x05\u013A\x99\x02\u0198\u0199\x05\u0144" + - "\x9E\x02\u0199\u019A\x05\u0140\x9C\x02\u019A\u019B\x05\u013A\x99\x02\u019B" + - "\u019C\x05\u0144\x9E\x02\u019C\u019D\x05\u0132\x95\x02\u019D\u019E\x05" + - "\u014E\xA3\x02\u019E\u019F\x05\u0150\xA4\x02\u019F\u01A0\x05\u012A\x91" + - "\x02\u01A0\u01A1\x05\u0150\xA4\x02\u01A1\u01A2\x05\u014E\xA3\x02\u01A2" + - "\u01A3\x03\x02\x02\x02\u01A3\u01A4\b\t\x02\x02\u01A4\x1B\x03\x02\x02\x02" + - "\u01A5\u01A6\x05\u013E\x9B\x02\u01A6\u01A7\x05\u0132\x95\x02\u01A7\u01A8" + - "\x05\u0132\x95\x02\u01A8\u01A9\x05\u0148\xA0\x02\u01A9\u01AA\x03\x02\x02" + - "\x02\u01AA\u01AB\b\n\x03\x02\u01AB\x1D\x03\x02\x02\x02\u01AC\u01AD\x05" + - "\u0140\x9C\x02\u01AD\u01AE\x05\u013A\x99\x02\u01AE\u01AF\x05\u0142\x9D" + - "\x02\u01AF\u01B0\x05\u013A\x99\x02\u01B0\u01B1\x05\u0150\xA4\x02\u01B1" + - "\u01B2\x03\x02\x02\x02\u01B2\u01B3\b\v\x02\x02\u01B3\x1F\x03\x02\x02\x02" + - "\u01B4\u01B5\x05\u0142\x9D\x02\u01B5\u01B6\x05\u0154\xA6\x02\u01B6\u01B7" + - "\x05T&\x02\u01B7\u01B8\x05\u0132\x95\x02\u01B8\u01B9\x05\u0158\xA8\x02" + - "\u01B9\u01BA\x05\u0148\xA0\x02\u01BA\u01BB\x05\u012A\x91\x02\u01BB\u01BC" + - "\x05\u0144\x9E\x02\u01BC\u01BD\x05\u0130\x94\x02\u01BD\u01BE\x03\x02\x02" + - "\x02\u01BE\u01BF\b\f\x07\x02\u01BF!\x03\x02\x02\x02\u01C0\u01C1\x05\u0148" + - "\xA0\x02\u01C1\u01C2\x05\u014C\xA2\x02\u01C2\u01C3\x05\u0146\x9F\x02\u01C3" + - "\u01C4\x05\u013C\x9A\x02\u01C4\u01C5\x05\u0132\x95\x02\u01C5\u01C6\x05" + - "\u012E\x93\x02\u01C6\u01C7\x05\u0150\xA4\x02\u01C7\u01C8\x03\x02\x02\x02" + - "\u01C8\u01C9\b\r\x03\x02\u01C9#\x03\x02\x02\x02\u01CA\u01CB\x05\u014C" + - "\xA2\x02\u01CB\u01CC\x05\u0132\x95\x02\u01CC\u01CD\x05\u0144\x9E\x02\u01CD" + - "\u01CE\x05\u012A\x91\x02\u01CE\u01CF\x05\u0142\x9D\x02\u01CF\u01D0\x05" + - "\u0132\x95\x02\u01D0\u01D1\x03\x02\x02\x02\u01D1\u01D2\b\x0E\b\x02\u01D2" + - "%\x03\x02\x02\x02\u01D3\u01D4\x05\u014C\xA2\x02\u01D4\u01D5\x05\u0146" + - "\x9F\x02\u01D5\u01D6\x05\u0156\xA7\x02\u01D6\u01D7\x03\x02\x02\x02\u01D7" + - "\u01D8\b\x0F\x02\x02\u01D8\'\x03\x02\x02\x02\u01D9\u01DA\x05\u014E\xA3" + - "\x02\u01DA\u01DB\x05\u0138\x98\x02\u01DB\u01DC\x05\u0146\x9F\x02\u01DC" + - "\u01DD\x05\u0156\xA7\x02\u01DD\u01DE\x03\x02\x02\x02\u01DE\u01DF\b\x10" + - "\t\x02\u01DF)\x03\x02\x02\x02\u01E0\u01E1\x05\u014E\xA3\x02\u01E1\u01E2" + - "\x05\u0146\x9F\x02\u01E2\u01E3\x05\u014C\xA2\x02\u01E3\u01E4\x05\u0150" + - "\xA4\x02\u01E4\u01E5\x03\x02\x02\x02\u01E5\u01E6\b\x11\x02\x02\u01E6+" + - "\x03\x02\x02\x02\u01E7\u01E8\x05\u014E\xA3\x02\u01E8\u01E9\x05\u0150\xA4" + - "\x02\u01E9\u01EA\x05\u012A\x91\x02\u01EA\u01EB\x05\u0150\xA4\x02\u01EB" + - "\u01EC\x05\u014E\xA3\x02\u01EC\u01ED\x03\x02\x02\x02\u01ED\u01EE\b\x12" + - "\x02\x02\u01EE-\x03\x02\x02\x02\u01EF\u01F0\x05\u0156\xA7\x02\u01F0\u01F1" + - "\x05\u0138\x98\x02\u01F1\u01F2\x05\u0132\x95\x02\u01F2\u01F3\x05\u014C" + - "\xA2\x02\u01F3\u01F4\x05\u0132\x95\x02\u01F4\u01F5\x03\x02\x02\x02\u01F5" + - "\u01F6\b\x13\x02\x02\u01F6/\x03\x02\x02\x02\u01F7\u01F9\n\x02\x02\x02" + - "\u01F8\u01F7\x03\x02\x02\x02\u01F9\u01FA\x03\x02\x02\x02\u01FA\u01F8\x03" + - "\x02\x02\x02\u01FA\u01FB\x03\x02\x02\x02\u01FB\u01FC\x03\x02\x02\x02\u01FC" + - "\u01FD\b\x14\x02\x02\u01FD1\x03\x02\x02\x02\u01FE\u01FF\x071\x02\x02\u01FF" + - "\u0200\x071\x02\x02\u0200\u0204\x03\x02\x02\x02\u0201\u0203\n\x03\x02" + - "\x02\u0202\u0201\x03\x02\x02\x02\u0203\u0206\x03\x02\x02\x02\u0204\u0202" + - "\x03\x02\x02\x02\u0204\u0205\x03\x02\x02\x02\u0205\u0208\x03\x02\x02\x02" + - "\u0206\u0204\x03\x02\x02\x02\u0207\u0209\x07\x0F\x02\x02\u0208\u0207\x03" + - "\x02\x02\x02\u0208\u0209\x03\x02\x02\x02\u0209\u020B\x03\x02\x02\x02\u020A" + - "\u020C\x07\f\x02\x02\u020B\u020A\x03\x02\x02\x02\u020B\u020C\x03\x02\x02" + - "\x02\u020C\u020D\x03\x02\x02\x02\u020D\u020E\b\x15\n\x02\u020E3\x03\x02" + - "\x02\x02\u020F\u0210\x071\x02\x02\u0210\u0211\x07,\x02\x02\u0211\u0216" + - "\x03\x02\x02\x02\u0212\u0215\x054\x16\x02\u0213\u0215\v\x02\x02\x02\u0214" + - "\u0212\x03\x02\x02\x02\u0214\u0213\x03\x02\x02\x02\u0215\u0218\x03\x02" + - "\x02\x02\u0216\u0217\x03\x02\x02\x02\u0216\u0214\x03\x02\x02\x02\u0217" + - "\u0219\x03\x02\x02\x02\u0218\u0216\x03\x02\x02\x02\u0219\u021A\x07,\x02" + - "\x02\u021A\u021B\x071\x02\x02\u021B\u021C\x03\x02\x02\x02\u021C\u021D" + - "\b\x16\n\x02\u021D5\x03\x02\x02\x02\u021E\u0220\t\x04\x02\x02\u021F\u021E" + - "\x03\x02\x02\x02\u0220\u0221\x03\x02\x02\x02\u0221\u021F\x03\x02\x02\x02" + - "\u0221\u0222\x03\x02\x02\x02\u0222\u0223\x03\x02\x02\x02\u0223\u0224\b" + - "\x17\n\x02\u02247\x03\x02\x02\x02\u0225\u0226\x05\xA0L\x02\u0226\u0227" + - "\x03\x02\x02\x02\u0227\u0228\b\x18\v\x02\u0228\u0229\b\x18\f\x02\u0229" + - "9\x03\x02\x02\x02\u022A\u022B\x05B\x1D\x02\u022B\u022C\x03\x02\x02\x02" + - "\u022C\u022D\b\x19\r\x02\u022D\u022E\b\x19\x0E\x02\u022E;\x03\x02\x02" + - "\x02\u022F\u0230\x056\x17\x02\u0230\u0231\x03\x02\x02\x02\u0231\u0232" + - "\b\x1A\n\x02\u0232=\x03\x02\x02\x02\u0233\u0234\x052\x15\x02\u0234\u0235" + - "\x03\x02\x02\x02\u0235\u0236\b\x1B\n\x02\u0236?\x03\x02\x02\x02\u0237" + - "\u0238\x054\x16\x02\u0238\u0239\x03\x02\x02\x02\u0239\u023A\b\x1C\n\x02" + - "\u023AA\x03\x02\x02\x02\u023B\u023C\x07~\x02\x02\u023C\u023D\x03\x02\x02" + - "\x02\u023D\u023E\b\x1D\x0E\x02\u023EC\x03\x02\x02\x02\u023F\u0240\t\x05" + - "\x02\x02\u0240E\x03\x02\x02\x02\u0241\u0242\t\x06\x02\x02\u0242G\x03\x02" + - "\x02\x02\u0243\u0244\x07^\x02\x02\u0244\u0245\t\x07\x02\x02\u0245I\x03" + - "\x02\x02\x02\u0246\u0247\n\b\x02\x02\u0247K\x03\x02\x02\x02\u0248\u024A" + - "\t\t\x02\x02\u0249\u024B\t\n\x02\x02\u024A\u0249\x03\x02\x02\x02\u024A" + - "\u024B\x03\x02\x02\x02\u024B\u024D\x03\x02\x02\x02\u024C\u024E\x05D\x1E" + - "\x02\u024D\u024C\x03\x02\x02\x02\u024E\u024F\x03\x02\x02\x02\u024F\u024D" + - "\x03\x02\x02\x02\u024F\u0250\x03\x02\x02\x02\u0250M\x03\x02\x02\x02\u0251" + - "\u0252\x07B\x02\x02\u0252O\x03\x02\x02\x02\u0253\u0254\x07b\x02\x02\u0254" + - "Q\x03\x02\x02\x02\u0255\u0259\n\v\x02\x02\u0256\u0257\x07b\x02\x02\u0257" + - "\u0259\x07b\x02\x02\u0258\u0255\x03\x02\x02\x02\u0258\u0256\x03\x02\x02" + - "\x02\u0259S\x03\x02\x02\x02\u025A\u025B\x07a\x02\x02\u025BU\x03\x02\x02" + - "\x02\u025C\u0260\x05F\x1F\x02\u025D\u0260\x05D\x1E\x02\u025E\u0260\x05" + - "T&\x02\u025F\u025C\x03\x02\x02\x02\u025F\u025D\x03\x02\x02\x02\u025F\u025E" + - "\x03\x02\x02\x02\u0260W\x03\x02\x02\x02\u0261\u0266\x07$\x02\x02\u0262" + - "\u0265\x05H \x02\u0263\u0265\x05J!\x02\u0264\u0262\x03\x02\x02\x02\u0264" + - "\u0263\x03\x02\x02\x02\u0265\u0268\x03\x02\x02\x02\u0266\u0264\x03\x02" + - "\x02\x02\u0266\u0267\x03\x02\x02\x02\u0267\u0269\x03\x02\x02\x02\u0268" + - "\u0266\x03\x02\x02\x02\u0269\u027F\x07$\x02\x02\u026A\u026B\x07$\x02\x02" + - "\u026B\u026C\x07$\x02\x02\u026C\u026D\x07$\x02\x02\u026D\u0271\x03\x02" + - "\x02\x02\u026E\u0270\n\x03\x02\x02\u026F\u026E\x03\x02\x02\x02\u0270\u0273" + - "\x03\x02\x02\x02\u0271\u0272\x03\x02\x02\x02\u0271\u026F\x03\x02\x02\x02" + - "\u0272\u0274\x03\x02\x02\x02\u0273\u0271\x03\x02\x02\x02\u0274\u0275\x07" + - "$\x02\x02\u0275\u0276\x07$\x02\x02\u0276\u0277\x07$\x02\x02\u0277\u0279" + - "\x03\x02\x02\x02\u0278\u027A\x07$\x02\x02\u0279\u0278\x03\x02\x02\x02" + - "\u0279\u027A\x03\x02\x02\x02\u027A\u027C\x03\x02\x02\x02\u027B\u027D\x07" + - "$\x02\x02\u027C\u027B\x03\x02\x02\x02\u027C\u027D\x03\x02\x02\x02\u027D" + - "\u027F\x03\x02\x02\x02\u027E\u0261\x03\x02\x02\x02\u027E\u026A\x03\x02" + - "\x02\x02\u027FY\x03\x02\x02\x02\u0280\u0282\x05D\x1E\x02\u0281\u0280\x03" + - "\x02\x02\x02\u0282\u0283\x03\x02\x02\x02\u0283\u0281\x03\x02\x02\x02\u0283" + - "\u0284\x03\x02\x02\x02\u0284[\x03\x02\x02\x02\u0285\u0287\x05D\x1E\x02" + - "\u0286\u0285\x03\x02\x02\x02\u0287\u0288\x03\x02\x02\x02\u0288\u0286\x03" + - "\x02\x02\x02\u0288\u0289\x03\x02\x02\x02\u0289\u028A\x03\x02\x02\x02\u028A" + - "\u028E\x05j1\x02\u028B\u028D\x05D\x1E\x02\u028C\u028B\x03\x02\x02\x02" + - "\u028D\u0290\x03\x02\x02\x02\u028E\u028C\x03\x02\x02\x02\u028E\u028F\x03" + - "\x02\x02\x02\u028F\u02B0\x03\x02\x02\x02\u0290\u028E\x03\x02\x02\x02\u0291" + - "\u0293\x05j1\x02\u0292\u0294\x05D\x1E\x02\u0293\u0292\x03\x02\x02\x02" + - "\u0294\u0295\x03\x02\x02\x02\u0295\u0293\x03\x02\x02\x02\u0295\u0296\x03" + - "\x02\x02\x02\u0296\u02B0\x03\x02\x02\x02\u0297\u0299\x05D\x1E\x02\u0298" + - "\u0297\x03\x02\x02\x02\u0299\u029A\x03\x02\x02\x02\u029A\u0298\x03\x02" + - "\x02\x02\u029A\u029B\x03\x02\x02\x02\u029B\u02A3\x03\x02\x02\x02\u029C" + - "\u02A0\x05j1\x02\u029D\u029F\x05D\x1E\x02\u029E\u029D\x03\x02\x02\x02" + - "\u029F\u02A2\x03\x02\x02\x02\u02A0\u029E\x03\x02\x02\x02\u02A0\u02A1\x03" + - "\x02\x02\x02\u02A1\u02A4\x03\x02\x02\x02\u02A2\u02A0\x03\x02\x02\x02\u02A3" + - "\u029C\x03\x02\x02\x02\u02A3\u02A4\x03\x02\x02\x02\u02A4\u02A5\x03\x02" + - "\x02\x02\u02A5\u02A6\x05L\"\x02\u02A6\u02B0\x03\x02\x02\x02\u02A7\u02A9" + - "\x05j1\x02\u02A8\u02AA\x05D\x1E\x02\u02A9\u02A8\x03\x02\x02\x02\u02AA" + - "\u02AB\x03\x02\x02\x02\u02AB\u02A9\x03\x02\x02\x02\u02AB\u02AC\x03\x02" + - "\x02\x02\u02AC\u02AD\x03\x02\x02\x02\u02AD\u02AE\x05L\"\x02\u02AE\u02B0" + - "\x03\x02\x02\x02\u02AF\u0286\x03\x02\x02\x02\u02AF\u0291\x03\x02\x02\x02" + - "\u02AF\u0298\x03\x02\x02\x02\u02AF\u02A7\x03\x02\x02\x02\u02B0]\x03\x02" + - "\x02\x02\u02B1\u02B2\x05\u012C\x92\x02\u02B2\u02B3\x05\u015A\xA9\x02\u02B3" + - "_\x03\x02\x02\x02\u02B4\u02B5\x05\u012A\x91\x02\u02B5\u02B6\x05\u0144" + - "\x9E\x02\u02B6\u02B7\x05\u0130\x94\x02\u02B7a\x03\x02\x02\x02\u02B8\u02B9" + - "\x05\u012A\x91\x02\u02B9\u02BA\x05\u014E\xA3\x02\u02BA\u02BB\x05\u012E" + - "\x93\x02\u02BBc\x03\x02\x02\x02\u02BC\u02BD\x07?\x02\x02\u02BDe\x03\x02" + - "\x02\x02\u02BE\u02BF\x07.\x02\x02\u02BFg\x03\x02\x02\x02\u02C0\u02C1\x05" + - "\u0130\x94\x02\u02C1\u02C2\x05\u0132\x95\x02\u02C2\u02C3\x05\u014E\xA3" + - "\x02\u02C3\u02C4\x05\u012E\x93\x02\u02C4i\x03\x02\x02\x02\u02C5\u02C6" + - "\x070\x02\x02\u02C6k\x03\x02\x02\x02\u02C7\u02C8\x05\u0134\x96\x02\u02C8" + - "\u02C9\x05\u012A\x91\x02\u02C9\u02CA\x05\u0140\x9C\x02\u02CA\u02CB\x05" + - "\u014E\xA3\x02\u02CB\u02CC\x05\u0132\x95\x02\u02CCm\x03\x02\x02\x02\u02CD" + - "\u02CE\x05\u0134\x96\x02\u02CE\u02CF\x05\u013A\x99\x02\u02CF\u02D0\x05" + - "\u014C\xA2\x02\u02D0\u02D1\x05\u014E\xA3\x02\u02D1\u02D2\x05\u0150\xA4" + - "\x02\u02D2o\x03\x02\x02\x02\u02D3\u02D4\x05\u0140\x9C\x02\u02D4\u02D5" + - "\x05\u012A\x91\x02\u02D5\u02D6\x05\u014E\xA3\x02\u02D6\u02D7\x05\u0150" + - "\xA4\x02\u02D7q\x03\x02\x02\x02\u02D8\u02D9\x07*\x02\x02\u02D9s\x03\x02" + - "\x02\x02\u02DA\u02DB\x05\u013A\x99\x02\u02DB\u02DC\x05\u0144\x9E\x02\u02DC" + - "u\x03\x02\x02\x02\u02DD\u02DE\x05\u013A\x99\x02\u02DE\u02DF\x05\u014E" + - "\xA3\x02\u02DFw\x03\x02\x02\x02\u02E0\u02E1\x05\u0140\x9C\x02\u02E1\u02E2" + - "\x05\u013A\x99\x02\u02E2\u02E3\x05\u013E\x9B\x02\u02E3\u02E4\x05\u0132" + - "\x95\x02\u02E4y\x03\x02\x02\x02\u02E5\u02E6\x05\u0144\x9E\x02\u02E6\u02E7" + - "\x05\u0146\x9F\x02\u02E7\u02E8\x05\u0150\xA4\x02\u02E8{\x03\x02\x02\x02" + - "\u02E9\u02EA\x05\u0144\x9E\x02\u02EA\u02EB\x05\u0152\xA5\x02\u02EB\u02EC" + - "\x05\u0140\x9C\x02\u02EC\u02ED\x05\u0140\x9C\x02\u02ED}\x03\x02\x02\x02" + - "\u02EE\u02EF\x05\u0144\x9E\x02\u02EF\u02F0\x05\u0152\xA5\x02\u02F0\u02F1" + - "\x05\u0140\x9C\x02\u02F1\u02F2\x05\u0140\x9C\x02\u02F2\u02F3\x05\u014E" + - "\xA3\x02\u02F3\x7F\x03\x02\x02\x02\u02F4\u02F5\x05\u0146\x9F\x02\u02F5" + - "\u02F6\x05\u014C\xA2\x02\u02F6\x81\x03\x02\x02\x02\u02F7\u02F8\x07A\x02" + - "\x02\u02F8\x83\x03\x02\x02\x02\u02F9\u02FA\x05\u014C\xA2\x02\u02FA\u02FB" + - "\x05\u0140\x9C\x02\u02FB\u02FC\x05\u013A\x99\x02\u02FC\u02FD\x05\u013E" + - "\x9B\x02\u02FD\u02FE\x05\u0132\x95\x02\u02FE\x85\x03\x02\x02\x02\u02FF" + - "\u0300\x07+\x02\x02\u0300\x87\x03\x02\x02\x02\u0301\u0302\x05\u0150\xA4" + - "\x02\u0302\u0303\x05\u014C\xA2\x02\u0303\u0304\x05\u0152\xA5\x02\u0304" + - "\u0305\x05\u0132\x95\x02\u0305\x89\x03\x02\x02\x02\u0306\u0307\x07?\x02" + - "\x02\u0307\u0308\x07?\x02\x02\u0308\x8B\x03\x02\x02\x02\u0309\u030A\x07" + - "#\x02\x02\u030A\u030B\x07?\x02\x02\u030B\x8D\x03\x02\x02\x02\u030C\u030D" + - "\x07>\x02\x02\u030D\x8F\x03\x02\x02\x02\u030E\u030F\x07>\x02\x02\u030F" + - "\u0310\x07?\x02\x02\u0310\x91\x03\x02\x02\x02\u0311\u0312\x07@\x02\x02" + - "\u0312\x93\x03\x02\x02\x02\u0313\u0314\x07@\x02\x02\u0314\u0315\x07?\x02" + - "\x02\u0315\x95\x03\x02\x02\x02\u0316\u0317\x07-\x02\x02\u0317\x97\x03" + - "\x02\x02\x02\u0318\u0319\x07/\x02\x02\u0319\x99\x03\x02\x02\x02\u031A" + - "\u031B\x07,\x02\x02\u031B\x9B\x03\x02\x02\x02\u031C\u031D\x071\x02\x02" + - "\u031D\x9D\x03\x02\x02\x02\u031E\u031F\x07\'\x02\x02\u031F\x9F\x03\x02" + - "\x02\x02\u0320\u0321\x07]\x02\x02\u0321\u0322\x03\x02\x02\x02\u0322\u0323" + - "\bL\x02\x02\u0323\u0324\bL\x02\x02\u0324\xA1\x03\x02\x02\x02\u0325\u0326" + - "\x07_\x02\x02\u0326\u0327\x03\x02\x02\x02\u0327\u0328\bM\x0E\x02\u0328" + - "\u0329\bM\x0E\x02\u0329\xA3\x03\x02\x02\x02\u032A\u032E\x05F\x1F\x02\u032B" + - "\u032D\x05V\'\x02\u032C\u032B\x03\x02\x02\x02\u032D\u0330\x03\x02\x02" + - "\x02\u032E\u032C\x03\x02\x02\x02\u032E\u032F\x03\x02\x02\x02\u032F\u033B" + - "\x03\x02\x02\x02\u0330\u032E\x03\x02\x02\x02\u0331\u0334\x05T&\x02\u0332" + - "\u0334\x05N#\x02\u0333\u0331\x03\x02\x02\x02\u0333\u0332\x03\x02\x02\x02" + - "\u0334\u0336\x03\x02\x02\x02\u0335\u0337\x05V\'\x02\u0336\u0335\x03\x02" + - "\x02\x02\u0337\u0338\x03\x02\x02\x02\u0338\u0336\x03\x02\x02\x02\u0338" + - "\u0339\x03\x02\x02\x02\u0339\u033B\x03\x02\x02\x02\u033A\u032A\x03\x02" + - "\x02\x02\u033A\u0333\x03\x02\x02\x02\u033B\xA5\x03\x02\x02\x02\u033C\u033E" + - "\x05P$\x02\u033D\u033F\x05R%\x02\u033E\u033D\x03\x02\x02\x02\u033F\u0340" + - "\x03\x02\x02\x02\u0340\u033E\x03\x02\x02\x02\u0340\u0341\x03\x02\x02\x02" + - "\u0341\u0342\x03\x02\x02\x02\u0342\u0343\x05P$\x02\u0343\xA7\x03\x02\x02" + - "\x02\u0344\u0345\x052\x15\x02\u0345\u0346\x03\x02\x02\x02\u0346\u0347" + - "\bP\n\x02\u0347\xA9\x03\x02\x02\x02\u0348\u0349\x054\x16\x02\u0349\u034A" + - "\x03\x02\x02\x02\u034A\u034B\bQ\n\x02\u034B\xAB\x03\x02\x02\x02\u034C" + - "\u034D\x056\x17\x02\u034D\u034E\x03\x02\x02\x02\u034E\u034F\bR\n\x02\u034F" + - "\xAD\x03\x02\x02\x02\u0350\u0351\x05B\x1D\x02\u0351\u0352\x03\x02\x02" + - "\x02\u0352\u0353\bS\r\x02\u0353\u0354\bS\x0E\x02\u0354\xAF\x03\x02\x02" + - "\x02\u0355\u0356\x05\xA0L\x02\u0356\u0357\x03\x02\x02\x02\u0357\u0358" + - "\bT\v\x02\u0358\u0359\bT\x06\x02\u0359\u035A\bT\x06\x02\u035A\xB1\x03" + - "\x02\x02\x02\u035B\u035C\x05\xA2M\x02\u035C\u035D\x03\x02\x02\x02\u035D" + - "\u035E\bU\x0F\x02\u035E\u035F\bU\x0E\x02\u035F\u0360\bU\x0E\x02\u0360" + - "\xB3\x03\x02\x02\x02\u0361\u0362\x05f/\x02\u0362\u0363\x03\x02\x02\x02" + - "\u0363\u0364\bV\x10\x02\u0364\xB5\x03\x02\x02\x02\u0365\u0366\x05d.\x02" + - "\u0366\u0367\x03\x02\x02\x02\u0367\u0368\bW\x11\x02\u0368\xB7\x03\x02" + - "\x02\x02\u0369\u036A\x05\u0142\x9D\x02\u036A\u036B\x05\u0132\x95\x02\u036B" + - "\u036C\x05\u0150\xA4\x02\u036C\u036D\x05\u012A\x91\x02\u036D\u036E\x05" + - "\u0130\x94\x02\u036E\u036F\x05\u012A\x91\x02\u036F\u0370\x05\u0150\xA4" + - "\x02\u0370\u0371\x05\u012A\x91\x02\u0371\xB9\x03\x02\x02\x02\u0372\u0376" + - "\n\f\x02\x02\u0373\u0374\x071\x02\x02\u0374\u0376\n\r\x02\x02\u0375\u0372" + - "\x03\x02\x02\x02\u0375\u0373\x03\x02\x02\x02\u0376\xBB\x03\x02\x02\x02" + - "\u0377\u0379\x05\xBAY\x02\u0378\u0377\x03\x02\x02\x02\u0379\u037A\x03" + - "\x02\x02\x02\u037A\u0378\x03\x02\x02\x02\u037A\u037B\x03\x02\x02\x02\u037B" + - "\xBD\x03\x02\x02\x02\u037C\u037D\x05\xA6O\x02\u037D\u037E\x03\x02\x02" + - "\x02\u037E\u037F\b[\x12\x02\u037F\xBF\x03\x02\x02\x02\u0380\u0381\x05" + - "2\x15\x02\u0381\u0382\x03\x02\x02\x02\u0382\u0383\b\\\n\x02\u0383\xC1" + - "\x03\x02\x02\x02\u0384\u0385\x054\x16\x02\u0385\u0386\x03\x02\x02\x02" + - "\u0386\u0387\b]\n\x02\u0387\xC3\x03\x02\x02\x02\u0388\u0389\x056\x17\x02" + - "\u0389\u038A\x03\x02\x02\x02\u038A\u038B\b^\n\x02\u038B\xC5\x03\x02\x02" + - "\x02\u038C\u038D\x05B\x1D\x02\u038D\u038E\x03\x02\x02\x02\u038E\u038F" + - "\b_\r\x02\u038F\u0390\b_\x0E\x02\u0390\xC7\x03\x02\x02\x02\u0391\u0392" + - "\x05j1\x02\u0392\u0393\x03\x02\x02\x02\u0393\u0394\b`\x13\x02\u0394\xC9" + - "\x03\x02\x02\x02\u0395\u0396\x05f/\x02\u0396\u0397\x03\x02\x02\x02\u0397" + - "\u0398\ba\x10\x02\u0398\xCB\x03\x02\x02\x02\u0399\u039E\x05F\x1F\x02\u039A" + - "\u039E\x05D\x1E\x02\u039B\u039E\x05T&\x02\u039C\u039E\x05\x9AI\x02\u039D" + - "\u0399\x03\x02\x02\x02\u039D\u039A\x03\x02\x02\x02\u039D\u039B\x03\x02" + - "\x02\x02\u039D\u039C\x03\x02\x02\x02\u039E\xCD\x03\x02\x02\x02\u039F\u03A2" + - "\x05F\x1F\x02\u03A0\u03A2\x05\x9AI\x02\u03A1\u039F\x03\x02\x02\x02\u03A1" + - "\u03A0\x03\x02\x02\x02\u03A2\u03A6\x03\x02\x02\x02\u03A3\u03A5\x05\xCC" + - "b\x02\u03A4\u03A3\x03\x02\x02\x02\u03A5\u03A8\x03\x02\x02\x02\u03A6\u03A4" + - "\x03\x02\x02\x02\u03A6\u03A7\x03\x02\x02\x02\u03A7\u03B3\x03\x02\x02\x02" + - "\u03A8\u03A6\x03\x02\x02\x02\u03A9\u03AC\x05T&\x02\u03AA\u03AC\x05N#\x02" + - "\u03AB\u03A9\x03\x02\x02\x02\u03AB\u03AA\x03\x02\x02\x02\u03AC\u03AE\x03" + - "\x02\x02\x02\u03AD\u03AF\x05\xCCb\x02\u03AE\u03AD\x03\x02\x02\x02\u03AF" + - "\u03B0\x03\x02\x02\x02\u03B0\u03AE\x03\x02\x02\x02\u03B0\u03B1\x03\x02" + - "\x02\x02\u03B1\u03B3\x03\x02\x02\x02\u03B2\u03A1\x03\x02\x02\x02\u03B2" + - "\u03AB\x03\x02\x02\x02\u03B3\xCF\x03\x02\x02\x02\u03B4\u03B5\x05\xA6O" + - "\x02\u03B5\u03B6\x03\x02\x02\x02\u03B6\u03B7\bd\x12\x02\u03B7\xD1\x03" + - "\x02\x02\x02\u03B8\u03B9\x052\x15\x02\u03B9\u03BA\x03\x02\x02\x02\u03BA" + - "\u03BB\be\n\x02\u03BB\xD3\x03\x02\x02\x02\u03BC\u03BD\x054\x16\x02\u03BD" + - "\u03BE\x03\x02\x02\x02\u03BE\u03BF\bf\n\x02\u03BF\xD5\x03\x02\x02\x02" + - "\u03C0\u03C1\x056\x17\x02\u03C1\u03C2\x03\x02\x02\x02\u03C2\u03C3\bg\n" + - "\x02\u03C3\xD7\x03\x02\x02\x02\u03C4\u03C5\x05B\x1D\x02\u03C5\u03C6\x03" + - "\x02\x02\x02\u03C6\u03C7\bh\r\x02\u03C7\u03C8\bh\x0E\x02\u03C8\xD9\x03" + - "\x02\x02\x02\u03C9\u03CA\x05d.\x02\u03CA\u03CB\x03\x02\x02\x02\u03CB\u03CC" + - "\bi\x11\x02\u03CC\xDB\x03\x02\x02\x02\u03CD\u03CE\x05f/\x02\u03CE\u03CF" + - "\x03\x02\x02\x02\u03CF\u03D0\bj\x10\x02\u03D0\xDD\x03\x02\x02\x02\u03D1" + - "\u03D2\x05j1\x02\u03D2\u03D3\x03\x02\x02\x02\u03D3\u03D4\bk\x13\x02\u03D4" + - "\xDF\x03\x02\x02\x02\u03D5\u03D6\x05\u012A\x91\x02\u03D6\u03D7\x05\u014E" + - "\xA3\x02\u03D7\xE1\x03\x02\x02\x02\u03D8\u03D9\x05\xA6O\x02\u03D9\u03DA" + - "\x03\x02\x02\x02\u03DA\u03DB\bm\x12\x02\u03DB\xE3\x03\x02\x02\x02\u03DC" + - "\u03DD\x05\xCEc\x02\u03DD\u03DE\x03\x02\x02\x02\u03DE\u03DF\bn\x14\x02" + - "\u03DF\xE5\x03\x02\x02\x02\u03E0\u03E1\x052\x15\x02\u03E1\u03E2\x03\x02" + - "\x02\x02\u03E2\u03E3\bo\n\x02\u03E3\xE7\x03\x02\x02\x02\u03E4\u03E5\x05" + - "4\x16\x02\u03E5\u03E6\x03\x02\x02\x02\u03E6\u03E7\bp\n\x02\u03E7\xE9\x03" + - "\x02\x02\x02\u03E8\u03E9\x056\x17\x02\u03E9\u03EA\x03\x02\x02\x02\u03EA" + - "\u03EB\bq\n\x02\u03EB\xEB\x03\x02\x02\x02\u03EC\u03ED\x05B\x1D\x02\u03ED" + - "\u03EE\x03\x02\x02\x02\u03EE\u03EF\br\r\x02\u03EF\u03F0\br\x0E\x02\u03F0" + - "\xED\x03\x02\x02\x02\u03F1\u03F2\x05\u0146\x9F\x02\u03F2\u03F3\x05\u0144" + - "\x9E\x02\u03F3\u03F4\x03\x02\x02\x02\u03F4\u03F5\bs\x15\x02\u03F5\xEF" + - "\x03\x02\x02\x02\u03F6\u03F7\x05\u0156\xA7\x02\u03F7\u03F8\x05\u013A\x99" + - "\x02\u03F8\u03F9\x05\u0150\xA4\x02\u03F9\u03FA\x05\u0138\x98\x02\u03FA" + - "\u03FB\x03\x02\x02\x02\u03FB\u03FC\bt\x15\x02\u03FC\xF1\x03\x02\x02\x02" + - "\u03FD\u03FE\x05\xBCZ\x02\u03FE\u03FF\x03\x02\x02\x02\u03FF\u0400\bu\x16" + - "\x02\u0400\xF3\x03\x02\x02\x02\u0401\u0402\x05\xA6O\x02\u0402\u0403\x03" + - "\x02\x02\x02\u0403\u0404\bv\x12\x02\u0404\xF5\x03\x02\x02\x02\u0405\u0406" + - "\x052\x15\x02\u0406\u0407\x03\x02\x02\x02\u0407\u0408\bw\n\x02\u0408\xF7" + - "\x03\x02\x02\x02\u0409\u040A\x054\x16\x02\u040A\u040B\x03\x02\x02\x02" + - "\u040B\u040C\bx\n\x02\u040C\xF9\x03\x02\x02\x02\u040D\u040E\x056\x17\x02" + - "\u040E\u040F\x03\x02\x02\x02\u040F\u0410\by\n\x02\u0410\xFB\x03\x02\x02" + - "\x02\u0411\u0412\x05B\x1D\x02\u0412\u0413\x03\x02\x02\x02\u0413\u0414" + - "\bz\r\x02\u0414\u0415\bz\x0E\x02\u0415\u0416\bz\x0E\x02\u0416\xFD\x03" + - "\x02\x02\x02\u0417\u0418\x05d.\x02\u0418\u0419\x03\x02\x02\x02\u0419\u041A" + - "\b{\x11\x02\u041A\xFF\x03\x02\x02\x02\u041B\u041C\x05f/\x02\u041C\u041D" + - "\x03\x02\x02\x02\u041D\u041E\b|\x10\x02\u041E\u0101\x03\x02\x02\x02\u041F" + - "\u0420\x05j1\x02\u0420\u0421\x03\x02\x02\x02\u0421\u0422\b}\x13\x02\u0422" + - "\u0103\x03\x02\x02\x02\u0423\u0424\x05\xF0t\x02\u0424\u0425\x03\x02\x02" + - "\x02\u0425\u0426\b~\x17\x02\u0426\u0105\x03\x02\x02\x02\u0427\u0428\x05" + - "\xCEc\x02\u0428\u0429\x03\x02\x02\x02\u0429\u042A\b\x7F\x14\x02\u042A" + - "\u0107\x03\x02\x02\x02\u042B\u042C\x05\xA6O\x02\u042C\u042D\x03\x02\x02" + - "\x02\u042D\u042E\b\x80\x12\x02\u042E\u0109\x03\x02\x02\x02\u042F\u0430" + - "\x052\x15\x02\u0430\u0431\x03\x02\x02\x02\u0431\u0432\b\x81\n\x02\u0432" + - "\u010B\x03\x02\x02\x02\u0433\u0434\x054\x16\x02\u0434\u0435\x03\x02\x02" + - "\x02\u0435\u0436\b\x82\n\x02\u0436\u010D\x03\x02\x02\x02\u0437\u0438\x05" + - "6\x17\x02\u0438\u0439\x03\x02\x02\x02\u0439\u043A\b\x83\n\x02\u043A\u010F" + - "\x03\x02\x02\x02\u043B\u043C\x05B\x1D\x02\u043C\u043D\x03\x02\x02\x02" + - "\u043D\u043E\b\x84\r\x02\u043E\u043F\b\x84\x0E\x02\u043F\u0111\x03\x02" + - "\x02\x02\u0440\u0441\x05j1\x02\u0441\u0442\x03\x02\x02\x02\u0442\u0443" + - "\b\x85\x13\x02\u0443\u0113\x03\x02\x02\x02\u0444\u0445\x05\xA6O\x02\u0445" + - "\u0446\x03\x02\x02\x02\u0446\u0447\b\x86\x12\x02\u0447\u0115\x03\x02\x02" + - "\x02\u0448\u0449\x05\xA4N\x02\u0449\u044A\x03\x02\x02\x02\u044A\u044B" + - "\b\x87\x18\x02\u044B\u0117\x03\x02\x02\x02\u044C\u044D\x052\x15\x02\u044D" + - "\u044E\x03\x02\x02\x02\u044E\u044F\b\x88\n\x02\u044F\u0119\x03\x02\x02" + - "\x02\u0450\u0451\x054\x16\x02\u0451\u0452\x03\x02\x02\x02\u0452\u0453" + - "\b\x89\n\x02\u0453\u011B\x03\x02\x02\x02\u0454\u0455\x056\x17\x02\u0455" + - "\u0456\x03\x02\x02\x02\u0456\u0457\b\x8A\n\x02\u0457\u011D\x03\x02\x02" + - "\x02\u0458\u0459\x05B\x1D\x02\u0459\u045A\x03\x02\x02\x02\u045A\u045B" + - "\b\x8B\r\x02\u045B\u045C\b\x8B\x0E\x02\u045C\u011F\x03\x02\x02\x02\u045D" + - "\u045E\x05\u013A\x99\x02\u045E\u045F\x05\u0144\x9E\x02\u045F\u0460\x05" + - "\u0134\x96\x02\u0460\u0461\x05\u0146\x9F\x02\u0461\u0121\x03\x02\x02\x02" + - "\u0462\u0463\x05\u0134\x96\x02\u0463\u0464\x05\u0152\xA5\x02\u0464\u0465" + - "\x05\u0144\x9E\x02\u0465\u0466\x05\u012E\x93\x02\u0466\u0467\x05\u0150" + - "\xA4\x02\u0467\u0468\x05\u013A\x99\x02\u0468\u0469\x05\u0146\x9F\x02\u0469" + - "\u046A\x05\u0144\x9E\x02\u046A\u046B\x05\u014E\xA3\x02\u046B\u0123\x03" + - "\x02\x02\x02\u046C\u046D\x052\x15\x02"; + "\x02\x02\u0101\u042F\x03\x02\x02\x02\u0103\u0433\x03\x02\x02\x02\u0105" + + "\u0437\x03\x02\x02\x02\u0107\u043D\x03\x02\x02\x02\u0109\u0441\x03\x02" + + "\x02\x02\u010B\u0445\x03\x02\x02\x02\u010D\u0449\x03\x02\x02\x02\u010F" + + "\u044D\x03\x02\x02\x02\u0111\u0451\x03\x02\x02\x02\u0113\u0455\x03\x02" + + "\x02\x02\u0115\u0459\x03\x02\x02\x02\u0117\u045D\x03\x02\x02\x02\u0119" + + "\u0461\x03\x02\x02\x02\u011B\u0466\x03\x02\x02\x02\u011D\u046A\x03\x02" + + "\x02\x02\u011F\u046E\x03\x02\x02\x02\u0121\u0472\x03\x02\x02\x02\u0123" + + "\u0476\x03\x02\x02\x02\u0125\u047A\x03\x02\x02\x02\u0127\u047E\x03\x02" + + "\x02\x02\u0129\u0483\x03\x02\x02\x02\u012B\u0488\x03\x02\x02\x02\u012D" + + "\u0492\x03\x02\x02\x02\u012F\u0496\x03\x02\x02\x02\u0131\u049A\x03\x02" + + "\x02\x02\u0133\u049E\x03\x02\x02\x02\u0135\u04A3\x03\x02\x02\x02\u0137" + + "\u04AA\x03\x02\x02\x02\u0139\u04AE\x03\x02\x02\x02\u013B\u04B2\x03\x02" + + "\x02\x02\u013D\u04B6\x03\x02\x02\x02\u013F\u04BA\x03\x02\x02\x02\u0141" + + "\u04BC\x03\x02\x02\x02\u0143\u04BE\x03\x02\x02\x02\u0145\u04C0\x03\x02" + + "\x02\x02\u0147\u04C2\x03\x02\x02\x02\u0149\u04C4\x03\x02\x02\x02\u014B" + + "\u04C6\x03\x02\x02\x02\u014D\u04C8\x03\x02\x02\x02\u014F\u04CA\x03\x02" + + "\x02\x02\u0151\u04CC\x03\x02\x02\x02\u0153\u04CE\x03\x02\x02\x02\u0155" + + "\u04D0\x03\x02\x02\x02\u0157\u04D2\x03\x02\x02\x02\u0159\u04D4\x03\x02" + + "\x02\x02\u015B\u04D6\x03\x02\x02\x02\u015D\u04D8\x03\x02\x02\x02\u015F" + + "\u04DA\x03\x02\x02\x02\u0161\u04DC\x03\x02\x02\x02\u0163\u04DE\x03\x02" + + "\x02\x02\u0165\u04E0\x03\x02\x02\x02\u0167\u04E2\x03\x02\x02\x02\u0169" + + "\u04E4\x03\x02\x02\x02\u016B\u04E6\x03\x02\x02\x02\u016D\u04E8\x03\x02" + + "\x02\x02\u016F\u04EA\x03\x02\x02\x02\u0171\u04EC\x03\x02\x02\x02\u0173" + + "\u0174\x05\u0145\x9E\x02\u0174\u0175\x05\u014F\xA3\x02\u0175\u0176\x05" + + "\u0163\xAD\x02\u0176\u0177\x05\u0163\xAD\x02\u0177\u0178\x05\u0147\x9F" + + "\x02\u0178\u0179\x05\u0143\x9D\x02\u0179\u017A\x05\u0165\xAE\x02\u017A" + + "\u017B\x03\x02\x02\x02\u017B\u017C\b\x02\x02\x02\u017C\x0E\x03\x02\x02" + + "\x02\u017D\u017E\x05\u0145\x9E\x02\u017E\u017F\x05\u0161\xAC\x02\u017F" + + "\u0180\x05\u015B\xA9\x02\u0180\u0181\x05\u015D\xAA\x02\u0181\u0182\x03" + + "\x02\x02\x02\u0182\u0183\b\x03\x03\x02\u0183\x10\x03\x02\x02\x02\u0184" + + "\u0185\x05\u0147\x9F\x02\u0185\u0186\x05\u0159\xA8\x02\u0186\u0187\x05" + + "\u0161\xAC\x02\u0187\u0188\x05\u014F\xA3\x02\u0188\u0189\x05\u0143\x9D" + + "\x02\u0189\u018A\x05\u014D\xA2\x02\u018A\u018B\x03\x02\x02\x02\u018B\u018C" + + "\b\x04\x04\x02\u018C\x12\x03\x02\x02\x02\u018D\u018E\x05\u0147\x9F\x02" + + "\u018E\u018F\x05\u0169\xB0\x02\u018F\u0190\x05\u013F\x9B\x02\u0190\u0191" + + "\x05\u0155\xA6\x02\u0191\u0192\x03\x02\x02\x02\u0192\u0193\b\x05\x02\x02" + + "\u0193\x14\x03\x02\x02\x02\u0194\u0195\x05\u0147\x9F\x02\u0195\u0196\x05" + + "\u016D\xB2\x02\u0196\u0197\x05\u015D\xAA\x02\u0197\u0198\x05\u0155\xA6" + + "\x02\u0198\u0199\x05\u013F\x9B\x02\u0199\u019A\x05\u014F\xA3\x02\u019A" + + "\u019B\x05\u0159\xA8\x02\u019B\u019C\x03\x02\x02\x02\u019C\u019D\b\x06" + + "\x05\x02\u019D\x16\x03\x02\x02\x02\u019E\u019F\x05\u0149\xA0\x02\u019F" + + "\u01A0\x05\u0161\xAC\x02\u01A0\u01A1\x05\u015B\xA9\x02\u01A1\u01A2\x05" + + "\u0157\xA7\x02\u01A2\u01A3\x03\x02\x02\x02\u01A3\u01A4\b\x07\x06\x02\u01A4" + + "\x18\x03\x02\x02\x02\u01A5\u01A6\x05\u014B\xA1\x02\u01A6\u01A7\x05\u0161" + + "\xAC\x02\u01A7\u01A8\x05\u015B\xA9\x02\u01A8\u01A9\x05\u0153\xA5\x02\u01A9" + + "\u01AA\x03\x02\x02\x02\u01AA\u01AB\b\b\x02\x02\u01AB\x1A\x03\x02\x02\x02" + + "\u01AC\u01AD\x05\u014F\xA3\x02\u01AD\u01AE\x05\u0159\xA8\x02\u01AE\u01AF" + + "\x05\u0155\xA6\x02\u01AF\u01B0\x05\u014F\xA3\x02\u01B0\u01B1\x05\u0159" + + "\xA8\x02\u01B1\u01B2\x05\u0147\x9F\x02\u01B2\u01B3\x05\u0163\xAD\x02\u01B3" + + "\u01B4\x05\u0165\xAE\x02\u01B4\u01B5\x05\u013F\x9B\x02\u01B5\u01B6\x05" + + "\u0165\xAE\x02\u01B6\u01B7\x05\u0163\xAD\x02\u01B7\u01B8\x03\x02\x02\x02" + + "\u01B8\u01B9\b\t\x02\x02\u01B9\x1C\x03\x02\x02\x02\u01BA\u01BB\x05\u0153" + + "\xA5\x02\u01BB\u01BC\x05\u0147\x9F\x02\u01BC\u01BD\x05\u0147\x9F\x02\u01BD" + + "\u01BE\x05\u015D\xAA\x02\u01BE\u01BF\x03\x02\x02\x02\u01BF\u01C0\b\n\x03" + + "\x02\u01C0\x1E\x03\x02\x02\x02\u01C1\u01C2\x05\u0155\xA6\x02\u01C2\u01C3" + + "\x05\u014F\xA3\x02\u01C3\u01C4\x05\u0157\xA7\x02\u01C4\u01C5\x05\u014F" + + "\xA3\x02\u01C5\u01C6\x05\u0165\xAE\x02\u01C6\u01C7\x03\x02\x02\x02\u01C7" + + "\u01C8\b\v\x02\x02\u01C8 \x03\x02\x02\x02\u01C9\u01CA\x05\u0157\xA7\x02" + + "\u01CA\u01CB\x05\u0169\xB0\x02\u01CB\u01CC\x05U&\x02\u01CC\u01CD\x05\u0147" + + "\x9F\x02\u01CD\u01CE\x05\u016D\xB2\x02\u01CE\u01CF\x05\u015D\xAA\x02\u01CF" + + "\u01D0\x05\u013F\x9B\x02\u01D0\u01D1\x05\u0159\xA8\x02\u01D1\u01D2\x05" + + "\u0145\x9E\x02\u01D2\u01D3\x03\x02\x02\x02\u01D3\u01D4\b\f\x07\x02\u01D4" + + "\"\x03\x02\x02\x02\u01D5\u01D6\x05\u015D\xAA\x02\u01D6\u01D7\x05\u0161" + + "\xAC\x02\u01D7\u01D8\x05\u015B\xA9\x02\u01D8\u01D9\x05\u0151\xA4\x02\u01D9" + + "\u01DA\x05\u0147\x9F\x02\u01DA\u01DB\x05\u0143\x9D\x02\u01DB\u01DC\x05" + + "\u0165\xAE\x02\u01DC\u01DD\x03\x02\x02\x02\u01DD\u01DE\b\r\x03\x02\u01DE" + + "$\x03\x02\x02\x02\u01DF\u01E0\x05\u0161\xAC\x02\u01E0\u01E1\x05\u0147" + + "\x9F\x02\u01E1\u01E2\x05\u0159\xA8\x02\u01E2\u01E3\x05\u013F\x9B\x02\u01E3" + + "\u01E4\x05\u0157\xA7\x02\u01E4\u01E5\x05\u0147\x9F\x02\u01E5\u01E6\x03" + + "\x02\x02\x02\u01E6\u01E7\b\x0E\b\x02\u01E7&\x03\x02\x02\x02\u01E8\u01E9" + + "\x05\u0161\xAC\x02\u01E9\u01EA\x05\u015B\xA9\x02\u01EA\u01EB\x05\u016B" + + "\xB1\x02\u01EB\u01EC\x03\x02\x02\x02\u01EC\u01ED\b\x0F\x02\x02\u01ED(" + + "\x03\x02\x02\x02\u01EE\u01EF\x05\u0163\xAD\x02\u01EF\u01F0\x05\u014D\xA2" + + "\x02\u01F0\u01F1\x05\u015B\xA9\x02\u01F1\u01F2\x05\u016B\xB1\x02\u01F2" + + "\u01F3\x03\x02\x02\x02\u01F3\u01F4\b\x10\t\x02\u01F4*\x03\x02\x02\x02" + + "\u01F5\u01F6\x05\u0163\xAD\x02\u01F6\u01F7\x05\u015B\xA9\x02\u01F7\u01F8" + + "\x05\u0161\xAC\x02\u01F8\u01F9\x05\u0165\xAE\x02\u01F9\u01FA\x03\x02\x02" + + "\x02\u01FA\u01FB\b\x11\x02\x02\u01FB,\x03\x02\x02\x02\u01FC\u01FD\x05" + + "\u0163\xAD\x02\u01FD\u01FE\x05\u0165\xAE\x02\u01FE\u01FF\x05\u013F\x9B" + + "\x02\u01FF\u0200\x05\u0165\xAE\x02\u0200\u0201\x05\u0163\xAD\x02\u0201" + + "\u0202\x03\x02\x02\x02\u0202\u0203\b\x12\x02\x02\u0203.\x03\x02\x02\x02" + + "\u0204\u0205\x05\u016B\xB1\x02\u0205\u0206\x05\u014D\xA2\x02\u0206\u0207" + + "\x05\u0147\x9F\x02\u0207\u0208\x05\u0161\xAC\x02\u0208\u0209\x05\u0147" + + "\x9F\x02\u0209\u020A\x03\x02\x02\x02\u020A\u020B\b\x13\x02\x02\u020B0" + + "\x03\x02\x02\x02\u020C\u020E\n\x02\x02\x02\u020D\u020C\x03\x02\x02\x02" + + "\u020E\u020F\x03\x02\x02\x02\u020F\u020D\x03\x02\x02\x02\u020F\u0210\x03" + + "\x02\x02\x02\u0210\u0211\x03\x02\x02\x02\u0211\u0212\b\x14\x02\x02\u0212" + + "2\x03\x02\x02\x02\u0213\u0214\x071\x02\x02\u0214\u0215\x071\x02\x02\u0215" + + "\u0219\x03\x02\x02\x02\u0216\u0218\n\x03\x02\x02\u0217\u0216\x03\x02\x02" + + "\x02\u0218\u021B\x03\x02\x02\x02\u0219\u0217\x03\x02\x02\x02\u0219\u021A" + + "\x03\x02\x02\x02\u021A\u021D\x03\x02\x02\x02\u021B\u0219\x03\x02\x02\x02" + + "\u021C\u021E\x07\x0F\x02\x02\u021D\u021C\x03\x02\x02\x02\u021D\u021E\x03" + + "\x02\x02\x02\u021E\u0220\x03\x02\x02\x02\u021F\u0221\x07\f\x02\x02\u0220" + + "\u021F\x03\x02\x02\x02\u0220\u0221\x03\x02\x02\x02\u0221\u0222\x03\x02" + + "\x02\x02\u0222\u0223\b\x15\n\x02\u02234\x03\x02\x02\x02\u0224\u0225\x07" + + "1\x02\x02\u0225\u0226\x07,\x02\x02\u0226\u022B\x03\x02\x02\x02\u0227\u022A" + + "\x055\x16\x02\u0228\u022A\v\x02\x02\x02\u0229\u0227\x03\x02\x02\x02\u0229" + + "\u0228\x03\x02\x02\x02\u022A\u022D\x03\x02\x02\x02\u022B\u022C\x03\x02" + + "\x02\x02\u022B\u0229\x03\x02\x02\x02\u022C\u022E\x03\x02\x02\x02\u022D" + + "\u022B\x03\x02\x02\x02\u022E\u022F\x07,\x02\x02\u022F\u0230\x071\x02\x02" + + "\u0230\u0231\x03\x02\x02\x02\u0231\u0232\b\x16\n\x02\u02326\x03\x02\x02" + + "\x02\u0233\u0235\t\x04\x02\x02\u0234\u0233\x03\x02\x02\x02\u0235\u0236" + + "\x03\x02\x02\x02\u0236\u0234\x03\x02\x02\x02\u0236\u0237\x03\x02\x02\x02" + + "\u0237\u0238\x03\x02\x02\x02\u0238\u0239\b\x17\n\x02\u02398\x03\x02\x02" + + "\x02\u023A\u023B\x05\xA1L\x02\u023B\u023C\x03\x02\x02\x02\u023C\u023D" + + "\b\x18\v\x02\u023D\u023E\b\x18\f\x02\u023E:\x03\x02\x02\x02\u023F\u0240" + + "\x05C\x1D\x02\u0240\u0241\x03\x02\x02\x02\u0241\u0242\b\x19\r\x02\u0242" + + "\u0243\b\x19\x0E\x02\u0243<\x03\x02\x02\x02\u0244\u0245\x057\x17\x02\u0245" + + "\u0246\x03\x02\x02\x02\u0246\u0247\b\x1A\n\x02\u0247>\x03\x02\x02\x02" + + "\u0248\u0249\x053\x15\x02\u0249\u024A\x03\x02\x02\x02\u024A\u024B\b\x1B" + + "\n\x02\u024B@\x03\x02\x02\x02\u024C\u024D\x055\x16\x02\u024D\u024E\x03" + + "\x02\x02\x02\u024E\u024F\b\x1C\n\x02\u024FB\x03\x02\x02\x02\u0250\u0251" + + "\x07~\x02\x02\u0251\u0252\x03\x02\x02\x02\u0252\u0253\b\x1D\x0E\x02\u0253" + + "D\x03\x02\x02\x02\u0254\u0255\t\x05\x02\x02\u0255F\x03\x02\x02\x02\u0256" + + "\u0257\t\x06\x02\x02\u0257H\x03\x02\x02\x02\u0258\u0259\x07^\x02\x02\u0259" + + "\u025A\t\x07\x02\x02\u025AJ\x03\x02\x02\x02\u025B\u025C\n\b\x02\x02\u025C" + + "L\x03\x02\x02\x02\u025D\u025F\t\t\x02\x02\u025E\u0260\t\n\x02\x02\u025F" + + "\u025E\x03\x02\x02\x02\u025F\u0260\x03\x02\x02\x02\u0260\u0262\x03\x02" + + "\x02\x02\u0261\u0263\x05E\x1E\x02\u0262\u0261\x03\x02\x02\x02\u0263\u0264" + + "\x03\x02\x02\x02\u0264\u0262\x03\x02\x02\x02\u0264\u0265\x03\x02\x02\x02" + + "\u0265N\x03\x02\x02\x02\u0266\u0267\x07B\x02\x02\u0267P\x03\x02\x02\x02" + + "\u0268\u0269\x07b\x02\x02\u0269R\x03\x02\x02\x02\u026A\u026E\n\v\x02\x02" + + "\u026B\u026C\x07b\x02\x02\u026C\u026E\x07b\x02\x02\u026D\u026A\x03\x02" + + "\x02\x02\u026D\u026B\x03\x02\x02\x02\u026ET\x03\x02\x02\x02\u026F\u0270" + + "\x07a\x02\x02\u0270V\x03\x02\x02\x02\u0271\u0275\x05G\x1F\x02\u0272\u0275" + + "\x05E\x1E\x02\u0273\u0275\x05U&\x02\u0274\u0271\x03\x02\x02\x02\u0274" + + "\u0272\x03\x02\x02\x02\u0274\u0273\x03\x02\x02\x02\u0275X\x03\x02\x02" + + "\x02\u0276\u027B\x07$\x02\x02\u0277\u027A\x05I \x02\u0278\u027A\x05K!" + + "\x02\u0279\u0277\x03\x02\x02\x02\u0279\u0278\x03\x02\x02\x02\u027A\u027D" + + "\x03\x02\x02\x02\u027B\u0279\x03\x02\x02\x02\u027B\u027C\x03\x02\x02\x02" + + "\u027C\u027E\x03\x02\x02\x02\u027D\u027B\x03\x02\x02\x02\u027E\u0294\x07" + + "$\x02\x02\u027F\u0280\x07$\x02\x02\u0280\u0281\x07$\x02\x02\u0281\u0282" + + "\x07$\x02\x02\u0282\u0286\x03\x02\x02\x02\u0283\u0285\n\x03\x02\x02\u0284" + + "\u0283\x03\x02\x02\x02\u0285\u0288\x03\x02\x02\x02\u0286\u0287\x03\x02" + + "\x02\x02\u0286\u0284\x03\x02\x02\x02\u0287\u0289\x03\x02\x02\x02\u0288" + + "\u0286\x03\x02\x02\x02\u0289\u028A\x07$\x02\x02\u028A\u028B\x07$\x02\x02" + + "\u028B\u028C\x07$\x02\x02\u028C\u028E\x03\x02\x02\x02\u028D\u028F\x07" + + "$\x02\x02\u028E\u028D\x03\x02\x02\x02\u028E\u028F\x03\x02\x02\x02\u028F" + + "\u0291\x03\x02\x02\x02\u0290\u0292\x07$\x02\x02\u0291\u0290\x03\x02\x02" + + "\x02\u0291\u0292\x03\x02\x02\x02\u0292\u0294\x03\x02\x02\x02\u0293\u0276" + + "\x03\x02\x02\x02\u0293\u027F\x03\x02\x02\x02\u0294Z\x03\x02\x02\x02\u0295" + + "\u0297\x05E\x1E\x02\u0296\u0295\x03\x02\x02\x02\u0297\u0298\x03\x02\x02" + + "\x02\u0298\u0296\x03\x02\x02\x02\u0298\u0299\x03\x02\x02\x02\u0299\\\x03" + + "\x02\x02\x02\u029A\u029C\x05E\x1E\x02\u029B\u029A\x03\x02\x02\x02\u029C" + + "\u029D\x03\x02\x02\x02\u029D\u029B\x03\x02\x02\x02\u029D\u029E\x03\x02" + + "\x02\x02\u029E\u029F\x03\x02\x02\x02\u029F\u02A3\x05k1\x02\u02A0\u02A2" + + "\x05E\x1E\x02\u02A1\u02A0\x03\x02\x02\x02\u02A2\u02A5\x03\x02\x02\x02" + + "\u02A3\u02A1\x03\x02\x02\x02\u02A3\u02A4\x03\x02\x02\x02\u02A4\u02C5\x03" + + "\x02\x02\x02\u02A5\u02A3\x03\x02\x02\x02\u02A6\u02A8\x05k1\x02\u02A7\u02A9" + + "\x05E\x1E\x02\u02A8\u02A7\x03\x02\x02\x02\u02A9\u02AA\x03\x02\x02\x02" + + "\u02AA\u02A8\x03\x02\x02\x02\u02AA\u02AB\x03\x02\x02\x02\u02AB\u02C5\x03" + + "\x02\x02\x02\u02AC\u02AE\x05E\x1E\x02\u02AD\u02AC\x03\x02\x02\x02\u02AE" + + "\u02AF\x03\x02\x02\x02\u02AF\u02AD\x03\x02\x02\x02\u02AF\u02B0\x03\x02" + + "\x02\x02\u02B0\u02B8\x03\x02\x02\x02\u02B1\u02B5\x05k1\x02\u02B2\u02B4" + + "\x05E\x1E\x02\u02B3\u02B2\x03\x02\x02\x02\u02B4\u02B7\x03\x02\x02\x02" + + "\u02B5\u02B3\x03\x02\x02\x02\u02B5\u02B6\x03\x02\x02\x02\u02B6\u02B9\x03" + + "\x02\x02\x02\u02B7\u02B5\x03\x02\x02\x02\u02B8\u02B1\x03\x02\x02\x02\u02B8" + + "\u02B9\x03\x02\x02\x02\u02B9\u02BA\x03\x02\x02\x02\u02BA\u02BB\x05M\"" + + "\x02\u02BB\u02C5\x03\x02\x02\x02\u02BC\u02BE\x05k1\x02\u02BD\u02BF\x05" + + "E\x1E\x02\u02BE\u02BD\x03\x02\x02\x02\u02BF\u02C0\x03\x02\x02\x02\u02C0" + + "\u02BE\x03\x02\x02\x02\u02C0\u02C1\x03\x02\x02\x02\u02C1\u02C2\x03\x02" + + "\x02\x02\u02C2\u02C3\x05M\"\x02\u02C3\u02C5\x03\x02\x02\x02\u02C4\u029B" + + "\x03\x02\x02\x02\u02C4\u02A6\x03\x02\x02\x02\u02C4\u02AD\x03\x02\x02\x02" + + "\u02C4\u02BC\x03\x02\x02\x02\u02C5^\x03\x02\x02\x02\u02C6\u02C7\x05\u0141" + + "\x9C\x02\u02C7\u02C8\x05\u016F\xB3\x02\u02C8`\x03\x02\x02\x02\u02C9\u02CA" + + "\x05\u013F\x9B\x02\u02CA\u02CB\x05\u0159\xA8\x02\u02CB\u02CC\x05\u0145" + + "\x9E\x02\u02CCb\x03\x02\x02\x02\u02CD\u02CE\x05\u013F\x9B\x02\u02CE\u02CF" + + "\x05\u0163\xAD\x02\u02CF\u02D0\x05\u0143\x9D\x02\u02D0d\x03\x02\x02\x02" + + "\u02D1\u02D2\x07?\x02\x02\u02D2f\x03\x02\x02\x02\u02D3\u02D4\x07.\x02" + + "\x02\u02D4h\x03\x02\x02\x02\u02D5\u02D6\x05\u0145\x9E\x02\u02D6\u02D7" + + "\x05\u0147\x9F\x02\u02D7\u02D8\x05\u0163\xAD\x02\u02D8\u02D9\x05\u0143" + + "\x9D\x02\u02D9j\x03\x02\x02\x02\u02DA\u02DB\x070\x02\x02\u02DBl\x03\x02" + + "\x02\x02\u02DC\u02DD\x05\u0149\xA0\x02\u02DD\u02DE\x05\u013F\x9B\x02\u02DE" + + "\u02DF\x05\u0155\xA6\x02\u02DF\u02E0\x05\u0163\xAD\x02\u02E0\u02E1\x05" + + "\u0147\x9F\x02\u02E1n\x03\x02\x02\x02\u02E2\u02E3\x05\u0149\xA0\x02\u02E3" + + "\u02E4\x05\u014F\xA3\x02\u02E4\u02E5\x05\u0161\xAC\x02\u02E5\u02E6\x05" + + "\u0163\xAD\x02\u02E6\u02E7\x05\u0165\xAE\x02\u02E7p\x03\x02\x02\x02\u02E8" + + "\u02E9\x05\u0155\xA6\x02\u02E9\u02EA\x05\u013F\x9B\x02\u02EA\u02EB\x05" + + "\u0163\xAD\x02\u02EB\u02EC\x05\u0165\xAE\x02\u02ECr\x03\x02\x02\x02\u02ED" + + "\u02EE\x07*\x02\x02\u02EEt\x03\x02\x02\x02\u02EF\u02F0\x05\u014F\xA3\x02" + + "\u02F0\u02F1\x05\u0159\xA8\x02\u02F1v\x03\x02\x02\x02\u02F2\u02F3\x05" + + "\u014F\xA3\x02\u02F3\u02F4\x05\u0163\xAD\x02\u02F4x\x03\x02\x02\x02\u02F5" + + "\u02F6\x05\u0155\xA6\x02\u02F6\u02F7\x05\u014F\xA3\x02\u02F7\u02F8\x05" + + "\u0153\xA5\x02\u02F8\u02F9\x05\u0147\x9F\x02\u02F9z\x03\x02\x02\x02\u02FA" + + "\u02FB\x05\u0159\xA8\x02\u02FB\u02FC\x05\u015B\xA9\x02\u02FC\u02FD\x05" + + "\u0165\xAE\x02\u02FD|\x03\x02\x02\x02\u02FE\u02FF\x05\u0159\xA8\x02\u02FF" + + "\u0300\x05\u0167\xAF\x02\u0300\u0301\x05\u0155\xA6\x02\u0301\u0302\x05" + + "\u0155\xA6\x02\u0302~\x03\x02\x02\x02\u0303\u0304\x05\u0159\xA8\x02\u0304" + + "\u0305\x05\u0167\xAF\x02\u0305\u0306\x05\u0155\xA6\x02\u0306\u0307\x05" + + "\u0155\xA6\x02\u0307\u0308\x05\u0163\xAD\x02\u0308\x80\x03\x02\x02\x02" + + "\u0309\u030A\x05\u015B\xA9\x02\u030A\u030B\x05\u0161\xAC\x02\u030B\x82" + + "\x03\x02\x02\x02\u030C\u030D\x07A\x02\x02\u030D\x84\x03\x02\x02\x02\u030E" + + "\u030F\x05\u0161\xAC\x02\u030F\u0310\x05\u0155\xA6\x02\u0310\u0311\x05" + + "\u014F\xA3\x02\u0311\u0312\x05\u0153\xA5\x02\u0312\u0313\x05\u0147\x9F" + + "\x02\u0313\x86\x03\x02\x02\x02\u0314\u0315\x07+\x02\x02\u0315\x88\x03" + + "\x02\x02\x02\u0316\u0317\x05\u0165\xAE\x02\u0317\u0318\x05\u0161\xAC\x02" + + "\u0318\u0319\x05\u0167\xAF\x02\u0319\u031A\x05\u0147\x9F\x02\u031A\x8A" + + "\x03\x02\x02\x02\u031B\u031C\x07?\x02\x02\u031C\u031D\x07?\x02\x02\u031D" + + "\x8C\x03\x02\x02\x02\u031E\u031F\x07#\x02\x02\u031F\u0320\x07?\x02\x02" + + "\u0320\x8E\x03\x02\x02\x02\u0321\u0322\x07>\x02\x02\u0322\x90\x03\x02" + + "\x02\x02\u0323\u0324\x07>\x02\x02\u0324\u0325\x07?\x02\x02\u0325\x92\x03" + + "\x02\x02\x02\u0326\u0327\x07@\x02\x02\u0327\x94\x03\x02\x02\x02\u0328" + + "\u0329\x07@\x02\x02\u0329\u032A\x07?\x02\x02\u032A\x96\x03\x02\x02\x02" + + "\u032B\u032C\x07-\x02\x02\u032C\x98\x03\x02\x02\x02\u032D\u032E\x07/\x02" + + "\x02\u032E\x9A\x03\x02\x02\x02\u032F\u0330\x07,\x02\x02\u0330\x9C\x03" + + "\x02\x02\x02\u0331\u0332\x071\x02\x02\u0332\x9E\x03\x02\x02\x02\u0333" + + "\u0334\x07\'\x02\x02\u0334\xA0\x03\x02\x02\x02\u0335\u0336\x07]\x02\x02" + + "\u0336\u0337\x03\x02\x02\x02\u0337\u0338\bL\x02\x02\u0338\u0339\bL\x02" + + "\x02\u0339\xA2\x03\x02\x02\x02\u033A\u033B\x07_\x02\x02\u033B\u033C\x03" + + "\x02\x02\x02\u033C\u033D\bM\x0E\x02\u033D\u033E\bM\x0E\x02\u033E\xA4\x03" + + "\x02\x02\x02\u033F\u0343\x05G\x1F\x02\u0340\u0342\x05W\'\x02\u0341\u0340" + + "\x03\x02\x02\x02\u0342\u0345\x03\x02\x02\x02\u0343\u0341\x03\x02\x02\x02" + + "\u0343\u0344\x03\x02\x02\x02\u0344\u0350\x03\x02\x02\x02\u0345\u0343\x03" + + "\x02\x02\x02\u0346\u0349\x05U&\x02\u0347\u0349\x05O#\x02\u0348\u0346\x03" + + "\x02\x02\x02\u0348\u0347\x03\x02\x02\x02\u0349\u034B\x03\x02\x02\x02\u034A" + + "\u034C\x05W\'\x02\u034B\u034A\x03\x02\x02\x02\u034C\u034D\x03\x02\x02" + + "\x02\u034D\u034B\x03\x02\x02\x02\u034D\u034E\x03\x02\x02\x02\u034E\u0350" + + "\x03\x02\x02\x02\u034F\u033F\x03\x02\x02\x02\u034F\u0348\x03\x02\x02\x02" + + "\u0350\xA6\x03\x02\x02\x02\u0351\u0353\x05Q$\x02\u0352\u0354\x05S%\x02" + + "\u0353\u0352\x03\x02\x02\x02\u0354\u0355\x03\x02\x02\x02\u0355\u0353\x03" + + "\x02\x02\x02\u0355\u0356\x03\x02\x02\x02\u0356\u0357\x03\x02\x02\x02\u0357" + + "\u0358\x05Q$\x02\u0358\xA8\x03\x02\x02\x02\u0359\u035A\x053\x15\x02\u035A" + + "\u035B\x03\x02\x02\x02\u035B\u035C\bP\n\x02\u035C\xAA\x03\x02\x02\x02" + + "\u035D\u035E\x055\x16\x02\u035E\u035F\x03\x02\x02\x02\u035F\u0360\bQ\n" + + "\x02\u0360\xAC\x03\x02\x02\x02\u0361\u0362\x057\x17\x02\u0362\u0363\x03" + + "\x02\x02\x02\u0363\u0364\bR\n\x02\u0364\xAE\x03\x02\x02\x02\u0365\u0366" + + "\x05C\x1D\x02\u0366\u0367\x03\x02\x02\x02\u0367\u0368\bS\r\x02\u0368\u0369" + + "\bS\x0E\x02\u0369\xB0\x03\x02\x02\x02\u036A\u036B\x05\xA1L\x02\u036B\u036C" + + "\x03\x02\x02\x02\u036C\u036D\bT\v\x02\u036D\xB2\x03\x02\x02\x02\u036E" + + "\u036F\x05\xA3M\x02\u036F\u0370\x03\x02\x02\x02\u0370\u0371\bU\x0F\x02" + + "\u0371\xB4\x03\x02\x02\x02\u0372\u0373\x05g/\x02\u0373\u0374\x03\x02\x02" + + "\x02\u0374\u0375\bV\x10\x02\u0375\xB6\x03\x02\x02\x02\u0376\u0377\x05" + + "e.\x02\u0377\u0378\x03\x02\x02\x02\u0378\u0379\bW\x11\x02\u0379\xB8\x03" + + "\x02\x02\x02\u037A\u037B\x05\u0157\xA7\x02\u037B\u037C\x05\u0147\x9F\x02" + + "\u037C\u037D\x05\u0165\xAE\x02\u037D\u037E\x05\u013F\x9B\x02\u037E\u037F" + + "\x05\u0145\x9E\x02\u037F\u0380\x05\u013F\x9B\x02\u0380\u0381\x05\u0165" + + "\xAE\x02\u0381\u0382\x05\u013F\x9B\x02\u0382\xBA\x03\x02\x02\x02\u0383" + + "\u0387\n\f\x02\x02\u0384\u0385\x071\x02\x02\u0385\u0387\n\r\x02\x02\u0386" + + "\u0383\x03\x02\x02\x02\u0386\u0384\x03\x02\x02\x02\u0387\xBC\x03\x02\x02" + + "\x02\u0388\u038A\x05\xBBY\x02\u0389\u0388\x03\x02\x02\x02\u038A\u038B" + + "\x03\x02\x02\x02\u038B\u0389\x03\x02\x02\x02\u038B\u038C\x03\x02\x02\x02" + + "\u038C\xBE\x03\x02\x02\x02\u038D\u038E\x05\xA7O\x02\u038E\u038F\x03\x02" + + "\x02\x02\u038F\u0390\b[\x12\x02\u0390\xC0\x03\x02\x02\x02\u0391\u0392" + + "\x053\x15\x02\u0392\u0393\x03\x02\x02\x02\u0393\u0394\b\\\n\x02\u0394" + + "\xC2\x03\x02\x02\x02\u0395\u0396\x055\x16\x02\u0396\u0397\x03\x02\x02" + + "\x02\u0397\u0398\b]\n\x02\u0398\xC4\x03\x02\x02\x02\u0399\u039A\x057\x17" + + "\x02\u039A\u039B\x03\x02\x02\x02\u039B\u039C\b^\n\x02\u039C\xC6\x03\x02" + + "\x02\x02\u039D\u039E\x05C\x1D\x02\u039E\u039F\x03\x02\x02\x02\u039F\u03A0" + + "\b_\r\x02\u03A0\u03A1\b_\x0E\x02\u03A1\xC8\x03\x02\x02\x02\u03A2\u03A3" + + "\x05k1\x02\u03A3\u03A4\x03\x02\x02\x02\u03A4\u03A5\b`\x13\x02\u03A5\xCA" + + "\x03\x02\x02\x02\u03A6\u03A7\x05g/\x02\u03A7\u03A8\x03\x02\x02\x02\u03A8" + + "\u03A9\ba\x10\x02\u03A9\xCC\x03\x02\x02\x02\u03AA\u03AF\x05G\x1F\x02\u03AB" + + "\u03AF\x05E\x1E\x02\u03AC\u03AF\x05U&\x02\u03AD\u03AF\x05\x9BI\x02\u03AE" + + "\u03AA\x03\x02\x02\x02\u03AE\u03AB\x03\x02\x02\x02\u03AE\u03AC\x03\x02" + + "\x02\x02\u03AE\u03AD\x03\x02\x02\x02\u03AF\xCE\x03\x02\x02\x02\u03B0\u03B3" + + "\x05G\x1F\x02\u03B1\u03B3\x05\x9BI\x02\u03B2\u03B0\x03\x02\x02\x02\u03B2" + + "\u03B1\x03\x02\x02\x02\u03B3\u03B7\x03\x02\x02\x02\u03B4\u03B6\x05\xCD" + + "b\x02\u03B5\u03B4\x03\x02\x02\x02\u03B6\u03B9\x03\x02\x02\x02\u03B7\u03B5" + + "\x03\x02\x02\x02\u03B7\u03B8\x03\x02\x02\x02\u03B8\u03C4\x03\x02\x02\x02" + + "\u03B9\u03B7\x03\x02\x02\x02\u03BA\u03BD\x05U&\x02\u03BB\u03BD\x05O#\x02" + + "\u03BC\u03BA\x03\x02\x02\x02\u03BC\u03BB\x03\x02\x02\x02\u03BD\u03BF\x03" + + "\x02\x02\x02\u03BE\u03C0\x05\xCDb\x02\u03BF\u03BE\x03\x02\x02\x02\u03C0" + + "\u03C1\x03\x02\x02\x02\u03C1\u03BF\x03\x02\x02\x02\u03C1\u03C2\x03\x02" + + "\x02\x02\u03C2\u03C4\x03\x02\x02\x02\u03C3\u03B2\x03\x02\x02\x02\u03C3" + + "\u03BC\x03\x02\x02\x02\u03C4\xD0\x03\x02\x02\x02\u03C5\u03C6\x05\xCFc" + + "\x02\u03C6\u03C7\x03\x02\x02\x02\u03C7\u03C8\bd\x14\x02\u03C8\xD2\x03" + + "\x02\x02\x02\u03C9\u03CA\x05\xA7O\x02\u03CA\u03CB\x03\x02\x02\x02\u03CB" + + "\u03CC\be\x12\x02\u03CC\xD4\x03\x02\x02\x02\u03CD\u03CE\x053\x15\x02\u03CE" + + "\u03CF\x03\x02\x02\x02\u03CF\u03D0\bf\n\x02\u03D0\xD6\x03\x02\x02\x02" + + "\u03D1\u03D2\x055\x16\x02\u03D2\u03D3\x03\x02\x02\x02\u03D3\u03D4\bg\n" + + "\x02\u03D4\xD8\x03\x02\x02\x02\u03D5\u03D6\x057\x17\x02\u03D6\u03D7\x03" + + "\x02\x02\x02\u03D7\u03D8\bh\n\x02\u03D8\xDA\x03\x02\x02\x02\u03D9\u03DA" + + "\x05C\x1D\x02\u03DA\u03DB\x03\x02\x02\x02\u03DB\u03DC\bi\r\x02\u03DC\u03DD" + + "\bi\x0E\x02\u03DD\xDC\x03\x02\x02\x02\u03DE\u03DF\x05e.\x02\u03DF\u03E0" + + "\x03\x02\x02\x02\u03E0\u03E1\bj\x11\x02\u03E1\xDE\x03\x02\x02\x02\u03E2" + + "\u03E3\x05g/\x02\u03E3\u03E4\x03\x02\x02\x02\u03E4\u03E5\bk\x10\x02\u03E5" + + "\xE0\x03\x02\x02\x02\u03E6\u03E7\x05k1\x02\u03E7\u03E8\x03\x02\x02\x02" + + "\u03E8\u03E9\bl\x13\x02\u03E9\xE2\x03\x02\x02\x02\u03EA\u03EB\x05\u013F" + + "\x9B\x02\u03EB\u03EC\x05\u0163\xAD\x02\u03EC\xE4\x03\x02\x02\x02\u03ED" + + "\u03EE\x05\xA7O\x02\u03EE\u03EF\x03\x02\x02\x02\u03EF\u03F0\bn\x12\x02" + + "\u03F0\xE6\x03\x02\x02\x02\u03F1\u03F2\x05\xCFc\x02\u03F2\u03F3\x03\x02" + + "\x02\x02\u03F3\u03F4\bo\x14\x02\u03F4\xE8\x03\x02\x02\x02\u03F5\u03F6" + + "\x053\x15\x02\u03F6\u03F7\x03\x02\x02\x02\u03F7\u03F8\bp\n\x02\u03F8\xEA" + + "\x03\x02\x02\x02\u03F9\u03FA\x055\x16\x02\u03FA\u03FB\x03\x02\x02\x02" + + "\u03FB\u03FC\bq\n\x02\u03FC\xEC\x03\x02\x02\x02\u03FD\u03FE\x057\x17\x02" + + "\u03FE\u03FF\x03\x02\x02\x02\u03FF\u0400\br\n\x02\u0400\xEE\x03\x02\x02" + + "\x02\u0401\u0402\x05C\x1D\x02\u0402\u0403\x03\x02\x02\x02\u0403\u0404" + + "\bs\r\x02\u0404\u0405\bs\x0E\x02\u0405\xF0\x03\x02\x02\x02\u0406\u0407" + + "\x05\xA1L\x02\u0407\u0408\x03\x02\x02\x02\u0408\u0409\bt\v\x02\u0409\u040A" + + "\bt\x15\x02\u040A\xF2\x03\x02\x02\x02\u040B\u040C\x05\u015B\xA9\x02\u040C" + + "\u040D\x05\u0159\xA8\x02\u040D\u040E\x03\x02\x02\x02\u040E\u040F\bu\x16" + + "\x02\u040F\xF4\x03\x02\x02\x02\u0410\u0411\x05\u016B\xB1\x02\u0411\u0412" + + "\x05\u014F\xA3\x02\u0412\u0413\x05\u0165\xAE\x02\u0413\u0414\x05\u014D" + + "\xA2\x02\u0414\u0415\x03\x02\x02\x02\u0415\u0416\bv\x16\x02\u0416\xF6" + + "\x03\x02\x02\x02\u0417\u0418\n\x0E\x02\x02\u0418\xF8\x03\x02\x02\x02\u0419" + + "\u041C\x05G\x1F\x02\u041A\u041C\x05E\x1E\x02\u041B\u0419\x03\x02\x02\x02" + + "\u041B\u041A\x03\x02\x02\x02\u041C\u0420\x03\x02\x02\x02\u041D\u041F\x05" + + "\xF7w\x02\u041E\u041D\x03\x02\x02\x02\u041F\u0422\x03\x02\x02\x02\u0420" + + "\u041E\x03\x02\x02\x02\u0420\u0421\x03\x02\x02\x02\u0421\xFA\x03\x02\x02" + + "\x02\u0422\u0420\x03\x02\x02\x02\u0423\u0424\x05\xA7O\x02\u0424\u0425" + + "\x03\x02\x02\x02\u0425\u0426\by\x12\x02\u0426\xFC\x03\x02\x02\x02\u0427" + + "\u0428\x05\xF9x\x02\u0428\u0429\x03\x02\x02\x02\u0429\u042A\bz\x17\x02" + + "\u042A\xFE\x03\x02\x02\x02\u042B\u042C\x053\x15\x02\u042C\u042D\x03\x02" + + "\x02\x02\u042D\u042E\b{\n\x02\u042E\u0100\x03\x02\x02\x02\u042F\u0430" + + "\x055\x16\x02\u0430\u0431\x03\x02\x02\x02\u0431\u0432\b|\n\x02\u0432\u0102" + + "\x03\x02\x02\x02\u0433\u0434\x057\x17\x02\u0434\u0435\x03\x02\x02\x02" + + "\u0435\u0436\b}\n\x02\u0436\u0104\x03\x02\x02\x02\u0437\u0438\x05C\x1D" + + "\x02\u0438\u0439\x03\x02\x02\x02\u0439\u043A\b~\r\x02\u043A\u043B\b~\x0E" + + "\x02\u043B\u043C\b~\x0E\x02\u043C\u0106\x03\x02\x02\x02\u043D\u043E\x05" + + "e.\x02\u043E\u043F\x03\x02\x02\x02\u043F\u0440\b\x7F\x11\x02\u0440\u0108" + + "\x03\x02\x02\x02\u0441\u0442\x05g/\x02\u0442\u0443\x03\x02\x02\x02\u0443" + + "\u0444\b\x80\x10\x02\u0444\u010A\x03\x02\x02\x02\u0445\u0446\x05k1\x02" + + "\u0446\u0447\x03\x02\x02\x02\u0447\u0448\b\x81\x13\x02\u0448\u010C\x03" + + "\x02\x02\x02\u0449\u044A\x05\xF5v\x02\u044A\u044B\x03\x02\x02\x02\u044B" + + "\u044C\b\x82\x18\x02\u044C\u010E\x03\x02\x02\x02"; private static readonly _serializedATNSegment2: string = - "\u046D\u046E\x03\x02\x02\x02\u046E\u046F\b\x8E\n\x02\u046F\u0125\x03\x02" + - "\x02\x02\u0470\u0471\x054\x16\x02\u0471\u0472\x03\x02\x02\x02\u0472\u0473" + - "\b\x8F\n\x02\u0473\u0127\x03\x02\x02\x02\u0474\u0475\x056\x17\x02\u0475" + - "\u0476\x03\x02\x02\x02\u0476\u0477\b\x90\n\x02\u0477\u0129\x03\x02\x02" + - "\x02\u0478\u0479\t\x0E\x02\x02\u0479\u012B\x03\x02\x02\x02\u047A\u047B" + - "\t\x0F\x02\x02\u047B\u012D\x03\x02\x02\x02\u047C\u047D\t\x10\x02\x02\u047D" + - "\u012F\x03\x02\x02\x02\u047E\u047F\t\x11\x02\x02\u047F\u0131\x03\x02\x02" + - "\x02\u0480\u0481\t\t\x02\x02\u0481\u0133\x03\x02\x02\x02\u0482\u0483\t" + - "\x12\x02\x02\u0483\u0135\x03\x02\x02\x02\u0484\u0485\t\x13\x02\x02\u0485" + - "\u0137\x03\x02\x02\x02\u0486\u0487\t\x14\x02\x02\u0487\u0139\x03\x02\x02" + - "\x02\u0488\u0489\t\x15\x02\x02\u0489\u013B\x03\x02\x02\x02\u048A\u048B" + - "\t\x16\x02\x02\u048B\u013D\x03\x02\x02\x02\u048C\u048D\t\x17\x02\x02\u048D" + - "\u013F\x03\x02\x02\x02\u048E\u048F\t\x18\x02\x02\u048F\u0141\x03\x02\x02" + - "\x02\u0490\u0491\t\x19\x02\x02\u0491\u0143\x03\x02\x02\x02\u0492\u0493" + - "\t\x1A\x02\x02\u0493\u0145\x03\x02\x02\x02\u0494\u0495\t\x1B\x02\x02\u0495" + - "\u0147\x03\x02\x02\x02\u0496\u0497\t\x1C\x02\x02\u0497\u0149\x03\x02\x02" + - "\x02\u0498\u0499\t\x1D\x02\x02\u0499\u014B\x03\x02\x02\x02\u049A\u049B" + - "\t\x1E\x02\x02\u049B\u014D\x03\x02\x02\x02\u049C\u049D\t\x1F\x02\x02\u049D" + - "\u014F\x03\x02\x02\x02\u049E\u049F\t \x02\x02\u049F\u0151\x03\x02\x02" + - "\x02\u04A0\u04A1\t!\x02\x02\u04A1\u0153\x03\x02\x02\x02\u04A2\u04A3\t" + - "\"\x02\x02\u04A3\u0155\x03\x02\x02\x02\u04A4\u04A5\t#\x02\x02\u04A5\u0157" + - "\x03\x02\x02\x02\u04A6\u04A7\t$\x02\x02\u04A7\u0159\x03\x02\x02\x02\u04A8" + - "\u04A9\t%\x02\x02\u04A9\u015B\x03\x02\x02\x02\u04AA\u04AB\t&\x02\x02\u04AB" + - "\u015D\x03\x02\x02\x023\x02\x03\x04\x05\x06\x07\b\t\n\v\u01FA\u0204\u0208" + - "\u020B\u0214\u0216\u0221\u024A\u024F\u0258\u025F\u0264\u0266\u0271\u0279" + - "\u027C\u027E\u0283\u0288\u028E\u0295\u029A\u02A0\u02A3\u02AB\u02AF\u032E" + - "\u0333\u0338\u033A\u0340\u0375\u037A\u039D\u03A1\u03A6\u03AB\u03B0\u03B2" + - "\x19\x07\x04\x02\x07\x06\x02\x07\b\x02\x07\x03\x02\x07\x05\x02\x07\n\x02" + - "\x07\x07\x02\x07\v\x02\x02\x03\x02\tA\x02\x07\x02\x02\t\x1C\x02\x06\x02" + - "\x02\tB\x02\t$\x02\t#\x02\tD\x02\t&\x02\tM\x02\x07\t\x02\tI\x02\tV\x02" + - "\tC\x02"; + "\u044D\u044E\x05\xCFc\x02\u044E\u044F\x03\x02\x02\x02\u044F\u0450\b\x83" + + "\x14\x02\u0450\u0110\x03\x02\x02\x02\u0451\u0452\x05\xA7O\x02\u0452\u0453" + + "\x03\x02\x02\x02\u0453\u0454\b\x84\x12\x02\u0454\u0112\x03\x02\x02\x02" + + "\u0455\u0456\x053\x15\x02\u0456\u0457\x03\x02\x02\x02\u0457\u0458\b\x85" + + "\n\x02\u0458\u0114\x03\x02\x02\x02\u0459\u045A\x055\x16\x02\u045A\u045B" + + "\x03\x02\x02\x02\u045B\u045C\b\x86\n\x02\u045C\u0116\x03\x02\x02\x02\u045D" + + "\u045E\x057\x17\x02\u045E\u045F\x03\x02\x02\x02\u045F\u0460\b\x87\n\x02" + + "\u0460\u0118\x03\x02\x02\x02\u0461\u0462\x05C\x1D\x02\u0462\u0463\x03" + + "\x02\x02\x02\u0463\u0464\b\x88\r\x02\u0464\u0465\b\x88\x0E\x02\u0465\u011A" + + "\x03\x02\x02\x02\u0466\u0467\x05k1\x02\u0467\u0468\x03\x02\x02\x02\u0468" + + "\u0469\b\x89\x13\x02\u0469\u011C\x03\x02\x02\x02\u046A\u046B\x05\xA7O" + + "\x02\u046B\u046C\x03\x02\x02\x02\u046C\u046D\b\x8A\x12\x02\u046D\u011E" + + "\x03\x02\x02\x02\u046E\u046F\x05\xA5N\x02\u046F\u0470\x03\x02\x02\x02" + + "\u0470\u0471\b\x8B\x19\x02\u0471\u0120\x03\x02\x02\x02\u0472\u0473\x05" + + "3\x15\x02\u0473\u0474\x03\x02\x02\x02\u0474\u0475\b\x8C\n\x02\u0475\u0122" + + "\x03\x02\x02\x02\u0476\u0477\x055\x16\x02\u0477\u0478\x03\x02\x02\x02" + + "\u0478\u0479\b\x8D\n\x02\u0479\u0124\x03\x02\x02\x02\u047A\u047B\x057" + + "\x17\x02\u047B\u047C\x03\x02\x02\x02\u047C\u047D\b\x8E\n\x02\u047D\u0126" + + "\x03\x02\x02\x02\u047E\u047F\x05C\x1D\x02\u047F\u0480\x03\x02\x02\x02" + + "\u0480\u0481\b\x8F\r\x02\u0481\u0482\b\x8F\x0E\x02\u0482\u0128\x03\x02" + + "\x02\x02\u0483\u0484\x05\u014F\xA3\x02\u0484\u0485\x05\u0159\xA8\x02\u0485" + + "\u0486\x05\u0149\xA0\x02\u0486\u0487\x05\u015B\xA9\x02\u0487\u012A\x03" + + "\x02\x02\x02\u0488\u0489\x05\u0149\xA0\x02\u0489\u048A\x05\u0167\xAF\x02" + + "\u048A\u048B\x05\u0159\xA8\x02\u048B\u048C\x05\u0143\x9D\x02\u048C\u048D" + + "\x05\u0165\xAE\x02\u048D\u048E\x05\u014F\xA3\x02\u048E\u048F\x05\u015B" + + "\xA9\x02\u048F\u0490\x05\u0159\xA8\x02\u0490\u0491\x05\u0163\xAD\x02\u0491" + + "\u012C\x03\x02\x02\x02\u0492\u0493\x053\x15\x02\u0493\u0494\x03\x02\x02" + + "\x02\u0494\u0495\b\x92\n\x02\u0495\u012E\x03\x02\x02\x02\u0496\u0497\x05" + + "5\x16\x02\u0497\u0498\x03\x02\x02\x02\u0498\u0499\b\x93\n\x02\u0499\u0130" + + "\x03\x02\x02\x02\u049A\u049B\x057\x17\x02\u049B\u049C\x03\x02\x02\x02" + + "\u049C\u049D\b\x94\n\x02\u049D\u0132\x03\x02\x02\x02\u049E\u049F\x05\xA3" + + "M\x02\u049F\u04A0\x03\x02\x02\x02\u04A0\u04A1\b\x95\x0F\x02\u04A1\u04A2" + + "\b\x95\x0E\x02\u04A2\u0134\x03\x02\x02\x02\u04A3\u04A4\x07<\x02\x02\u04A4" + + "\u0136\x03\x02\x02\x02\u04A5\u04AB\x05O#\x02\u04A6\u04AB\x05E\x1E\x02" + + "\u04A7\u04AB\x05k1\x02\u04A8\u04AB\x05G\x1F\x02\u04A9\u04AB\x05U&\x02" + + "\u04AA\u04A5\x03\x02\x02\x02\u04AA\u04A6\x03\x02\x02\x02\u04AA\u04A7\x03" + + "\x02\x02\x02\u04AA\u04A8\x03\x02\x02\x02\u04AA\u04A9\x03\x02\x02\x02\u04AB" + + "\u04AC\x03\x02\x02\x02\u04AC\u04AA\x03\x02\x02\x02\u04AC\u04AD\x03\x02" + + "\x02\x02\u04AD\u0138\x03\x02\x02\x02\u04AE\u04AF\x053\x15\x02\u04AF\u04B0" + + "\x03\x02\x02\x02\u04B0\u04B1\b\x98\n\x02\u04B1\u013A\x03\x02\x02\x02\u04B2" + + "\u04B3\x055\x16\x02\u04B3\u04B4\x03\x02\x02\x02\u04B4\u04B5\b\x99\n\x02" + + "\u04B5\u013C\x03\x02\x02\x02\u04B6\u04B7\x057\x17\x02\u04B7\u04B8\x03" + + "\x02\x02\x02\u04B8\u04B9\b\x9A\n\x02\u04B9\u013E\x03\x02\x02\x02\u04BA" + + "\u04BB\t\x0F\x02\x02\u04BB\u0140\x03\x02\x02\x02\u04BC\u04BD\t\x10\x02" + + "\x02\u04BD\u0142\x03\x02\x02\x02\u04BE\u04BF\t\x11\x02\x02\u04BF\u0144" + + "\x03\x02\x02\x02\u04C0\u04C1\t\x12\x02\x02\u04C1\u0146\x03\x02\x02\x02" + + "\u04C2\u04C3\t\t\x02\x02\u04C3\u0148\x03\x02\x02\x02\u04C4\u04C5\t\x13" + + "\x02\x02\u04C5\u014A\x03\x02\x02\x02\u04C6\u04C7\t\x14\x02\x02\u04C7\u014C" + + "\x03\x02\x02\x02\u04C8\u04C9\t\x15\x02\x02\u04C9\u014E\x03\x02\x02\x02" + + "\u04CA\u04CB\t\x16\x02\x02\u04CB\u0150\x03\x02\x02\x02\u04CC\u04CD\t\x17" + + "\x02\x02\u04CD\u0152\x03\x02\x02\x02\u04CE\u04CF\t\x18\x02\x02\u04CF\u0154" + + "\x03\x02\x02\x02\u04D0\u04D1\t\x19\x02\x02\u04D1\u0156\x03\x02\x02\x02" + + "\u04D2\u04D3\t\x1A\x02\x02\u04D3\u0158\x03\x02\x02\x02\u04D4\u04D5\t\x1B" + + "\x02\x02\u04D5\u015A\x03\x02\x02\x02\u04D6\u04D7\t\x1C\x02\x02\u04D7\u015C" + + "\x03\x02\x02\x02\u04D8\u04D9\t\x1D\x02\x02\u04D9\u015E\x03\x02\x02\x02" + + "\u04DA\u04DB\t\x1E\x02\x02\u04DB\u0160\x03\x02\x02\x02\u04DC\u04DD\t\x1F" + + "\x02\x02\u04DD\u0162\x03\x02\x02\x02\u04DE\u04DF\t \x02\x02\u04DF\u0164" + + "\x03\x02\x02\x02\u04E0\u04E1\t!\x02\x02\u04E1\u0166\x03\x02\x02\x02\u04E2" + + "\u04E3\t\"\x02\x02\u04E3\u0168\x03\x02\x02\x02\u04E4\u04E5\t#\x02\x02" + + "\u04E5\u016A\x03\x02\x02\x02\u04E6\u04E7\t$\x02\x02\u04E7\u016C\x03\x02" + + "\x02\x02\u04E8\u04E9\t%\x02\x02\u04E9\u016E\x03\x02\x02\x02\u04EA\u04EB" + + "\t&\x02\x02\u04EB\u0170\x03\x02\x02\x02\u04EC\u04ED\t\'\x02\x02\u04ED" + + "\u0172\x03\x02\x02\x028\x02\x03\x04\x05\x06\x07\b\t\n\v\f\u020F\u0219" + + "\u021D\u0220\u0229\u022B\u0236\u025F\u0264\u026D\u0274\u0279\u027B\u0286" + + "\u028E\u0291\u0293\u0298\u029D\u02A3\u02AA\u02AF\u02B5\u02B8\u02C0\u02C4" + + "\u0343\u0348\u034D\u034F\u0355\u0386\u038B\u03AE\u03B2\u03B7\u03BC\u03C1" + + "\u03C3\u041B\u0420\u04AA\u04AC\x1A\x07\x04\x02\x07\x06\x02\x07\b\x02\x07" + + "\x03\x02\x07\x05\x02\x07\n\x02\x07\x07\x02\x07\v\x02\x02\x03\x02\tA\x02" + + "\x07\x02\x02\t\x1C\x02\x06\x02\x02\tB\x02\t$\x02\t#\x02\tD\x02\t&\x02" + + "\tM\x02\x07\f\x02\x07\t\x02\tW\x02\tV\x02\tC\x02"; public static readonly _serializedATN: string = Utils.join( [ esql_lexer._serializedATNSegment0, diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.g4 b/packages/kbn-monaco/src/esql/antlr/esql_parser.g4 index 9577d28e90254..9c637d1917a11 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.g4 +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.g4 @@ -111,15 +111,11 @@ evalCommand ; statsCommand - : STATS fields? (BY grouping)? + : STATS stats=fields? (BY grouping=fields)? ; inlinestatsCommand - : INLINESTATS fields (BY grouping)? - ; - -grouping - : qualifiedName (COMMA qualifiedName)* + : INLINESTATS stats=fields (BY grouping=fields)? ; fromIdentifier @@ -141,7 +137,7 @@ identifier ; identifierPattern - : PROJECT_UNQUOTED_IDENTIFIER + : UNQUOTED_ID_PATTERN | QUOTED_IDENTIFIER ; @@ -246,9 +242,13 @@ showCommand ; enrichCommand - : ENRICH policyName=fromIdentifier (ON matchField=qualifiedNamePattern)? (WITH enrichWithClause (COMMA enrichWithClause)*)? + : ENRICH setting* policyName=ENRICH_POLICY_NAME (ON matchField=qualifiedNamePattern)? (WITH enrichWithClause (COMMA enrichWithClause)*)? ; enrichWithClause : (newName=qualifiedNamePattern ASSIGN)? enrichField=qualifiedNamePattern + ; + +setting + : OPENING_BRACKET name=SETTING COLON value=SETTING CLOSING_BRACKET ; \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.interp b/packages/kbn-monaco/src/esql/antlr/esql_parser.interp index 6c8870cecd9cd..a9cf5f8472a52 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.interp +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.interp @@ -98,6 +98,12 @@ null null null null +null +':' +null +null +null +null token symbolic names: null @@ -175,7 +181,7 @@ FROM_UNQUOTED_IDENTIFIER FROM_LINE_COMMENT FROM_MULTILINE_COMMENT FROM_WS -PROJECT_UNQUOTED_IDENTIFIER +UNQUOTED_ID_PATTERN PROJECT_LINE_COMMENT PROJECT_MULTILINE_COMMENT PROJECT_WS @@ -185,6 +191,7 @@ RENAME_MULTILINE_COMMENT RENAME_WS ON WITH +ENRICH_POLICY_NAME ENRICH_LINE_COMMENT ENRICH_MULTILINE_COMMENT ENRICH_WS @@ -199,6 +206,11 @@ FUNCTIONS SHOW_LINE_COMMENT SHOW_MULTILINE_COMMENT SHOW_WS +COLON +SETTING +SETTING_LINE_COMMENT +SETTTING_MULTILINE_COMMENT +SETTING_WS rule names: singleStatement @@ -220,7 +232,6 @@ metadata evalCommand statsCommand inlinestatsCommand -grouping fromIdentifier qualifiedName qualifiedNamePattern @@ -250,7 +261,8 @@ subqueryExpression showCommand enrichCommand enrichWithClause +setting atn: -[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 100, 521, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 110, 10, 3, 12, 3, 14, 3, 113, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 119, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 134, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 146, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 153, 10, 7, 12, 7, 14, 7, 156, 11, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 163, 10, 7, 3, 7, 3, 7, 5, 7, 167, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 175, 10, 7, 12, 7, 14, 7, 178, 11, 7, 3, 8, 3, 8, 5, 8, 182, 10, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 189, 10, 8, 3, 8, 3, 8, 3, 8, 5, 8, 194, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 201, 10, 9, 3, 10, 3, 10, 3, 10, 3, 10, 5, 10, 207, 10, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 215, 10, 10, 12, 10, 14, 10, 218, 11, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 227, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 235, 10, 12, 12, 12, 14, 12, 238, 11, 12, 5, 12, 240, 10, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 7, 14, 250, 10, 14, 12, 14, 14, 14, 253, 11, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 260, 10, 15, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 266, 10, 16, 12, 16, 14, 16, 269, 11, 16, 3, 16, 5, 16, 272, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 279, 10, 17, 12, 17, 14, 17, 282, 11, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 5, 19, 291, 10, 19, 3, 19, 3, 19, 5, 19, 295, 10, 19, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 301, 10, 20, 3, 21, 3, 21, 3, 21, 7, 21, 306, 10, 21, 12, 21, 14, 21, 309, 11, 21, 3, 22, 3, 22, 3, 23, 3, 23, 3, 23, 7, 23, 316, 10, 23, 12, 23, 14, 23, 319, 11, 23, 3, 24, 3, 24, 3, 24, 7, 24, 324, 10, 24, 12, 24, 14, 24, 327, 11, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 346, 10, 27, 12, 27, 14, 27, 349, 11, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 357, 10, 27, 12, 27, 14, 27, 360, 11, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 3, 27, 7, 27, 368, 10, 27, 12, 27, 14, 27, 371, 11, 27, 3, 27, 3, 27, 5, 27, 375, 10, 27, 3, 28, 3, 28, 3, 28, 3, 29, 3, 29, 3, 29, 3, 29, 7, 29, 384, 10, 29, 12, 29, 14, 29, 387, 11, 29, 3, 30, 3, 30, 5, 30, 391, 10, 30, 3, 30, 3, 30, 5, 30, 395, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 401, 10, 31, 12, 31, 14, 31, 404, 11, 31, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 410, 10, 31, 12, 31, 14, 31, 413, 11, 31, 5, 31, 415, 10, 31, 3, 32, 3, 32, 3, 32, 3, 32, 7, 32, 421, 10, 32, 12, 32, 14, 32, 424, 11, 32, 3, 33, 3, 33, 3, 33, 3, 33, 7, 33, 430, 10, 33, 12, 33, 14, 33, 433, 11, 33, 3, 34, 3, 34, 3, 34, 3, 34, 3, 35, 3, 35, 3, 35, 3, 35, 5, 35, 443, 10, 35, 3, 36, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 3, 38, 3, 38, 3, 38, 7, 38, 455, 10, 38, 12, 38, 14, 38, 458, 11, 38, 3, 39, 3, 39, 3, 39, 3, 39, 3, 40, 3, 40, 3, 41, 3, 41, 5, 41, 468, 10, 41, 3, 42, 5, 42, 471, 10, 42, 3, 42, 3, 42, 3, 43, 5, 43, 476, 10, 43, 3, 43, 3, 43, 3, 44, 3, 44, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 3, 48, 3, 48, 3, 48, 3, 48, 5, 48, 495, 10, 48, 3, 49, 3, 49, 3, 49, 3, 49, 5, 49, 501, 10, 49, 3, 49, 3, 49, 3, 49, 3, 49, 7, 49, 507, 10, 49, 12, 49, 14, 49, 510, 11, 49, 5, 49, 512, 10, 49, 3, 50, 3, 50, 3, 50, 5, 50, 517, 10, 50, 3, 50, 3, 50, 3, 50, 2, 2, 5, 4, 12, 18, 51, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 80, 2, 82, 2, 84, 2, 86, 2, 88, 2, 90, 2, 92, 2, 94, 2, 96, 2, 98, 2, 2, 11, 3, 2, 60, 61, 3, 2, 62, 64, 4, 2, 68, 68, 73, 73, 3, 2, 67, 68, 4, 2, 68, 68, 77, 77, 4, 2, 34, 34, 37, 37, 3, 2, 40, 41, 4, 2, 39, 39, 53, 53, 3, 2, 54, 59, 2, 550, 2, 100, 3, 2, 2, 2, 4, 103, 3, 2, 2, 2, 6, 118, 3, 2, 2, 2, 8, 133, 3, 2, 2, 2, 10, 135, 3, 2, 2, 2, 12, 166, 3, 2, 2, 2, 14, 193, 3, 2, 2, 2, 16, 200, 3, 2, 2, 2, 18, 206, 3, 2, 2, 2, 20, 226, 3, 2, 2, 2, 22, 228, 3, 2, 2, 2, 24, 243, 3, 2, 2, 2, 26, 246, 3, 2, 2, 2, 28, 259, 3, 2, 2, 2, 30, 261, 3, 2, 2, 2, 32, 273, 3, 2, 2, 2, 34, 285, 3, 2, 2, 2, 36, 288, 3, 2, 2, 2, 38, 296, 3, 2, 2, 2, 40, 302, 3, 2, 2, 2, 42, 310, 3, 2, 2, 2, 44, 312, 3, 2, 2, 2, 46, 320, 3, 2, 2, 2, 48, 328, 3, 2, 2, 2, 50, 330, 3, 2, 2, 2, 52, 374, 3, 2, 2, 2, 54, 376, 3, 2, 2, 2, 56, 379, 3, 2, 2, 2, 58, 388, 3, 2, 2, 2, 60, 414, 3, 2, 2, 2, 62, 416, 3, 2, 2, 2, 64, 425, 3, 2, 2, 2, 66, 434, 3, 2, 2, 2, 68, 438, 3, 2, 2, 2, 70, 444, 3, 2, 2, 2, 72, 448, 3, 2, 2, 2, 74, 451, 3, 2, 2, 2, 76, 459, 3, 2, 2, 2, 78, 463, 3, 2, 2, 2, 80, 467, 3, 2, 2, 2, 82, 470, 3, 2, 2, 2, 84, 475, 3, 2, 2, 2, 86, 479, 3, 2, 2, 2, 88, 481, 3, 2, 2, 2, 90, 483, 3, 2, 2, 2, 92, 486, 3, 2, 2, 2, 94, 494, 3, 2, 2, 2, 96, 496, 3, 2, 2, 2, 98, 516, 3, 2, 2, 2, 100, 101, 5, 4, 3, 2, 101, 102, 7, 2, 2, 3, 102, 3, 3, 2, 2, 2, 103, 104, 8, 3, 1, 2, 104, 105, 5, 6, 4, 2, 105, 111, 3, 2, 2, 2, 106, 107, 12, 3, 2, 2, 107, 108, 7, 28, 2, 2, 108, 110, 5, 8, 5, 2, 109, 106, 3, 2, 2, 2, 110, 113, 3, 2, 2, 2, 111, 109, 3, 2, 2, 2, 111, 112, 3, 2, 2, 2, 112, 5, 3, 2, 2, 2, 113, 111, 3, 2, 2, 2, 114, 119, 5, 90, 46, 2, 115, 119, 5, 30, 16, 2, 116, 119, 5, 24, 13, 2, 117, 119, 5, 94, 48, 2, 118, 114, 3, 2, 2, 2, 118, 115, 3, 2, 2, 2, 118, 116, 3, 2, 2, 2, 118, 117, 3, 2, 2, 2, 119, 7, 3, 2, 2, 2, 120, 134, 5, 34, 18, 2, 121, 134, 5, 38, 20, 2, 122, 134, 5, 54, 28, 2, 123, 134, 5, 60, 31, 2, 124, 134, 5, 56, 29, 2, 125, 134, 5, 36, 19, 2, 126, 134, 5, 10, 6, 2, 127, 134, 5, 62, 32, 2, 128, 134, 5, 64, 33, 2, 129, 134, 5, 68, 35, 2, 130, 134, 5, 70, 36, 2, 131, 134, 5, 96, 49, 2, 132, 134, 5, 72, 37, 2, 133, 120, 3, 2, 2, 2, 133, 121, 3, 2, 2, 2, 133, 122, 3, 2, 2, 2, 133, 123, 3, 2, 2, 2, 133, 124, 3, 2, 2, 2, 133, 125, 3, 2, 2, 2, 133, 126, 3, 2, 2, 2, 133, 127, 3, 2, 2, 2, 133, 128, 3, 2, 2, 2, 133, 129, 3, 2, 2, 2, 133, 130, 3, 2, 2, 2, 133, 131, 3, 2, 2, 2, 133, 132, 3, 2, 2, 2, 134, 9, 3, 2, 2, 2, 135, 136, 7, 20, 2, 2, 136, 137, 5, 12, 7, 2, 137, 11, 3, 2, 2, 2, 138, 139, 8, 7, 1, 2, 139, 140, 7, 46, 2, 2, 140, 167, 5, 12, 7, 9, 141, 167, 5, 16, 9, 2, 142, 167, 5, 14, 8, 2, 143, 145, 5, 16, 9, 2, 144, 146, 7, 46, 2, 2, 145, 144, 3, 2, 2, 2, 145, 146, 3, 2, 2, 2, 146, 147, 3, 2, 2, 2, 147, 148, 7, 43, 2, 2, 148, 149, 7, 42, 2, 2, 149, 154, 5, 16, 9, 2, 150, 151, 7, 36, 2, 2, 151, 153, 5, 16, 9, 2, 152, 150, 3, 2, 2, 2, 153, 156, 3, 2, 2, 2, 154, 152, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 157, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 157, 158, 7, 52, 2, 2, 158, 167, 3, 2, 2, 2, 159, 160, 5, 16, 9, 2, 160, 162, 7, 44, 2, 2, 161, 163, 7, 46, 2, 2, 162, 161, 3, 2, 2, 2, 162, 163, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 165, 7, 47, 2, 2, 165, 167, 3, 2, 2, 2, 166, 138, 3, 2, 2, 2, 166, 141, 3, 2, 2, 2, 166, 142, 3, 2, 2, 2, 166, 143, 3, 2, 2, 2, 166, 159, 3, 2, 2, 2, 167, 176, 3, 2, 2, 2, 168, 169, 12, 6, 2, 2, 169, 170, 7, 33, 2, 2, 170, 175, 5, 12, 7, 7, 171, 172, 12, 5, 2, 2, 172, 173, 7, 49, 2, 2, 173, 175, 5, 12, 7, 6, 174, 168, 3, 2, 2, 2, 174, 171, 3, 2, 2, 2, 175, 178, 3, 2, 2, 2, 176, 174, 3, 2, 2, 2, 176, 177, 3, 2, 2, 2, 177, 13, 3, 2, 2, 2, 178, 176, 3, 2, 2, 2, 179, 181, 5, 16, 9, 2, 180, 182, 7, 46, 2, 2, 181, 180, 3, 2, 2, 2, 181, 182, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 184, 7, 45, 2, 2, 184, 185, 5, 86, 44, 2, 185, 194, 3, 2, 2, 2, 186, 188, 5, 16, 9, 2, 187, 189, 7, 46, 2, 2, 188, 187, 3, 2, 2, 2, 188, 189, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 191, 7, 51, 2, 2, 191, 192, 5, 86, 44, 2, 192, 194, 3, 2, 2, 2, 193, 179, 3, 2, 2, 2, 193, 186, 3, 2, 2, 2, 194, 15, 3, 2, 2, 2, 195, 201, 5, 18, 10, 2, 196, 197, 5, 18, 10, 2, 197, 198, 5, 88, 45, 2, 198, 199, 5, 18, 10, 2, 199, 201, 3, 2, 2, 2, 200, 195, 3, 2, 2, 2, 200, 196, 3, 2, 2, 2, 201, 17, 3, 2, 2, 2, 202, 203, 8, 10, 1, 2, 203, 207, 5, 20, 11, 2, 204, 205, 9, 2, 2, 2, 205, 207, 5, 18, 10, 5, 206, 202, 3, 2, 2, 2, 206, 204, 3, 2, 2, 2, 207, 216, 3, 2, 2, 2, 208, 209, 12, 4, 2, 2, 209, 210, 9, 3, 2, 2, 210, 215, 5, 18, 10, 5, 211, 212, 12, 3, 2, 2, 212, 213, 9, 2, 2, 2, 213, 215, 5, 18, 10, 4, 214, 208, 3, 2, 2, 2, 214, 211, 3, 2, 2, 2, 215, 218, 3, 2, 2, 2, 216, 214, 3, 2, 2, 2, 216, 217, 3, 2, 2, 2, 217, 19, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 219, 227, 5, 52, 27, 2, 220, 227, 5, 44, 23, 2, 221, 227, 5, 22, 12, 2, 222, 223, 7, 42, 2, 2, 223, 224, 5, 12, 7, 2, 224, 225, 7, 52, 2, 2, 225, 227, 3, 2, 2, 2, 226, 219, 3, 2, 2, 2, 226, 220, 3, 2, 2, 2, 226, 221, 3, 2, 2, 2, 226, 222, 3, 2, 2, 2, 227, 21, 3, 2, 2, 2, 228, 229, 5, 48, 25, 2, 229, 239, 7, 42, 2, 2, 230, 240, 7, 62, 2, 2, 231, 236, 5, 12, 7, 2, 232, 233, 7, 36, 2, 2, 233, 235, 5, 12, 7, 2, 234, 232, 3, 2, 2, 2, 235, 238, 3, 2, 2, 2, 236, 234, 3, 2, 2, 2, 236, 237, 3, 2, 2, 2, 237, 240, 3, 2, 2, 2, 238, 236, 3, 2, 2, 2, 239, 230, 3, 2, 2, 2, 239, 231, 3, 2, 2, 2, 239, 240, 3, 2, 2, 2, 240, 241, 3, 2, 2, 2, 241, 242, 7, 52, 2, 2, 242, 23, 3, 2, 2, 2, 243, 244, 7, 16, 2, 2, 244, 245, 5, 26, 14, 2, 245, 25, 3, 2, 2, 2, 246, 251, 5, 28, 15, 2, 247, 248, 7, 36, 2, 2, 248, 250, 5, 28, 15, 2, 249, 247, 3, 2, 2, 2, 250, 253, 3, 2, 2, 2, 251, 249, 3, 2, 2, 2, 251, 252, 3, 2, 2, 2, 252, 27, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 254, 260, 5, 12, 7, 2, 255, 256, 5, 44, 23, 2, 256, 257, 7, 35, 2, 2, 257, 258, 5, 12, 7, 2, 258, 260, 3, 2, 2, 2, 259, 254, 3, 2, 2, 2, 259, 255, 3, 2, 2, 2, 260, 29, 3, 2, 2, 2, 261, 262, 7, 8, 2, 2, 262, 267, 5, 42, 22, 2, 263, 264, 7, 36, 2, 2, 264, 266, 5, 42, 22, 2, 265, 263, 3, 2, 2, 2, 266, 269, 3, 2, 2, 2, 267, 265, 3, 2, 2, 2, 267, 268, 3, 2, 2, 2, 268, 271, 3, 2, 2, 2, 269, 267, 3, 2, 2, 2, 270, 272, 5, 32, 17, 2, 271, 270, 3, 2, 2, 2, 271, 272, 3, 2, 2, 2, 272, 31, 3, 2, 2, 2, 273, 274, 7, 65, 2, 2, 274, 275, 7, 72, 2, 2, 275, 280, 5, 42, 22, 2, 276, 277, 7, 36, 2, 2, 277, 279, 5, 42, 22, 2, 278, 276, 3, 2, 2, 2, 279, 282, 3, 2, 2, 2, 280, 278, 3, 2, 2, 2, 280, 281, 3, 2, 2, 2, 281, 283, 3, 2, 2, 2, 282, 280, 3, 2, 2, 2, 283, 284, 7, 66, 2, 2, 284, 33, 3, 2, 2, 2, 285, 286, 7, 6, 2, 2, 286, 287, 5, 26, 14, 2, 287, 35, 3, 2, 2, 2, 288, 290, 7, 19, 2, 2, 289, 291, 5, 26, 14, 2, 290, 289, 3, 2, 2, 2, 290, 291, 3, 2, 2, 2, 291, 294, 3, 2, 2, 2, 292, 293, 7, 32, 2, 2, 293, 295, 5, 40, 21, 2, 294, 292, 3, 2, 2, 2, 294, 295, 3, 2, 2, 2, 295, 37, 3, 2, 2, 2, 296, 297, 7, 10, 2, 2, 297, 300, 5, 26, 14, 2, 298, 299, 7, 32, 2, 2, 299, 301, 5, 40, 21, 2, 300, 298, 3, 2, 2, 2, 300, 301, 3, 2, 2, 2, 301, 39, 3, 2, 2, 2, 302, 307, 5, 44, 23, 2, 303, 304, 7, 36, 2, 2, 304, 306, 5, 44, 23, 2, 305, 303, 3, 2, 2, 2, 306, 309, 3, 2, 2, 2, 307, 305, 3, 2, 2, 2, 307, 308, 3, 2, 2, 2, 308, 41, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 310, 311, 9, 4, 2, 2, 311, 43, 3, 2, 2, 2, 312, 317, 5, 48, 25, 2, 313, 314, 7, 38, 2, 2, 314, 316, 5, 48, 25, 2, 315, 313, 3, 2, 2, 2, 316, 319, 3, 2, 2, 2, 317, 315, 3, 2, 2, 2, 317, 318, 3, 2, 2, 2, 318, 45, 3, 2, 2, 2, 319, 317, 3, 2, 2, 2, 320, 325, 5, 50, 26, 2, 321, 322, 7, 38, 2, 2, 322, 324, 5, 50, 26, 2, 323, 321, 3, 2, 2, 2, 324, 327, 3, 2, 2, 2, 325, 323, 3, 2, 2, 2, 325, 326, 3, 2, 2, 2, 326, 47, 3, 2, 2, 2, 327, 325, 3, 2, 2, 2, 328, 329, 9, 5, 2, 2, 329, 49, 3, 2, 2, 2, 330, 331, 9, 6, 2, 2, 331, 51, 3, 2, 2, 2, 332, 375, 7, 47, 2, 2, 333, 334, 5, 84, 43, 2, 334, 335, 7, 67, 2, 2, 335, 375, 3, 2, 2, 2, 336, 375, 5, 82, 42, 2, 337, 375, 5, 84, 43, 2, 338, 375, 5, 78, 40, 2, 339, 375, 7, 50, 2, 2, 340, 375, 5, 86, 44, 2, 341, 342, 7, 65, 2, 2, 342, 347, 5, 80, 41, 2, 343, 344, 7, 36, 2, 2, 344, 346, 5, 80, 41, 2, 345, 343, 3, 2, 2, 2, 346, 349, 3, 2, 2, 2, 347, 345, 3, 2, 2, 2, 347, 348, 3, 2, 2, 2, 348, 350, 3, 2, 2, 2, 349, 347, 3, 2, 2, 2, 350, 351, 7, 66, 2, 2, 351, 375, 3, 2, 2, 2, 352, 353, 7, 65, 2, 2, 353, 358, 5, 78, 40, 2, 354, 355, 7, 36, 2, 2, 355, 357, 5, 78, 40, 2, 356, 354, 3, 2, 2, 2, 357, 360, 3, 2, 2, 2, 358, 356, 3, 2, 2, 2, 358, 359, 3, 2, 2, 2, 359, 361, 3, 2, 2, 2, 360, 358, 3, 2, 2, 2, 361, 362, 7, 66, 2, 2, 362, 375, 3, 2, 2, 2, 363, 364, 7, 65, 2, 2, 364, 369, 5, 86, 44, 2, 365, 366, 7, 36, 2, 2, 366, 368, 5, 86, 44, 2, 367, 365, 3, 2, 2, 2, 368, 371, 3, 2, 2, 2, 369, 367, 3, 2, 2, 2, 369, 370, 3, 2, 2, 2, 370, 372, 3, 2, 2, 2, 371, 369, 3, 2, 2, 2, 372, 373, 7, 66, 2, 2, 373, 375, 3, 2, 2, 2, 374, 332, 3, 2, 2, 2, 374, 333, 3, 2, 2, 2, 374, 336, 3, 2, 2, 2, 374, 337, 3, 2, 2, 2, 374, 338, 3, 2, 2, 2, 374, 339, 3, 2, 2, 2, 374, 340, 3, 2, 2, 2, 374, 341, 3, 2, 2, 2, 374, 352, 3, 2, 2, 2, 374, 363, 3, 2, 2, 2, 375, 53, 3, 2, 2, 2, 376, 377, 7, 12, 2, 2, 377, 378, 7, 30, 2, 2, 378, 55, 3, 2, 2, 2, 379, 380, 7, 18, 2, 2, 380, 385, 5, 58, 30, 2, 381, 382, 7, 36, 2, 2, 382, 384, 5, 58, 30, 2, 383, 381, 3, 2, 2, 2, 384, 387, 3, 2, 2, 2, 385, 383, 3, 2, 2, 2, 385, 386, 3, 2, 2, 2, 386, 57, 3, 2, 2, 2, 387, 385, 3, 2, 2, 2, 388, 390, 5, 12, 7, 2, 389, 391, 9, 7, 2, 2, 390, 389, 3, 2, 2, 2, 390, 391, 3, 2, 2, 2, 391, 394, 3, 2, 2, 2, 392, 393, 7, 48, 2, 2, 393, 395, 9, 8, 2, 2, 394, 392, 3, 2, 2, 2, 394, 395, 3, 2, 2, 2, 395, 59, 3, 2, 2, 2, 396, 397, 7, 11, 2, 2, 397, 402, 5, 46, 24, 2, 398, 399, 7, 36, 2, 2, 399, 401, 5, 46, 24, 2, 400, 398, 3, 2, 2, 2, 401, 404, 3, 2, 2, 2, 402, 400, 3, 2, 2, 2, 402, 403, 3, 2, 2, 2, 403, 415, 3, 2, 2, 2, 404, 402, 3, 2, 2, 2, 405, 406, 7, 14, 2, 2, 406, 411, 5, 46, 24, 2, 407, 408, 7, 36, 2, 2, 408, 410, 5, 46, 24, 2, 409, 407, 3, 2, 2, 2, 410, 413, 3, 2, 2, 2, 411, 409, 3, 2, 2, 2, 411, 412, 3, 2, 2, 2, 412, 415, 3, 2, 2, 2, 413, 411, 3, 2, 2, 2, 414, 396, 3, 2, 2, 2, 414, 405, 3, 2, 2, 2, 415, 61, 3, 2, 2, 2, 416, 417, 7, 4, 2, 2, 417, 422, 5, 46, 24, 2, 418, 419, 7, 36, 2, 2, 419, 421, 5, 46, 24, 2, 420, 418, 3, 2, 2, 2, 421, 424, 3, 2, 2, 2, 422, 420, 3, 2, 2, 2, 422, 423, 3, 2, 2, 2, 423, 63, 3, 2, 2, 2, 424, 422, 3, 2, 2, 2, 425, 426, 7, 15, 2, 2, 426, 431, 5, 66, 34, 2, 427, 428, 7, 36, 2, 2, 428, 430, 5, 66, 34, 2, 429, 427, 3, 2, 2, 2, 430, 433, 3, 2, 2, 2, 431, 429, 3, 2, 2, 2, 431, 432, 3, 2, 2, 2, 432, 65, 3, 2, 2, 2, 433, 431, 3, 2, 2, 2, 434, 435, 5, 46, 24, 2, 435, 436, 7, 81, 2, 2, 436, 437, 5, 46, 24, 2, 437, 67, 3, 2, 2, 2, 438, 439, 7, 3, 2, 2, 439, 440, 5, 20, 11, 2, 440, 442, 5, 86, 44, 2, 441, 443, 5, 74, 38, 2, 442, 441, 3, 2, 2, 2, 442, 443, 3, 2, 2, 2, 443, 69, 3, 2, 2, 2, 444, 445, 7, 9, 2, 2, 445, 446, 5, 20, 11, 2, 446, 447, 5, 86, 44, 2, 447, 71, 3, 2, 2, 2, 448, 449, 7, 13, 2, 2, 449, 450, 5, 44, 23, 2, 450, 73, 3, 2, 2, 2, 451, 456, 5, 76, 39, 2, 452, 453, 7, 36, 2, 2, 453, 455, 5, 76, 39, 2, 454, 452, 3, 2, 2, 2, 455, 458, 3, 2, 2, 2, 456, 454, 3, 2, 2, 2, 456, 457, 3, 2, 2, 2, 457, 75, 3, 2, 2, 2, 458, 456, 3, 2, 2, 2, 459, 460, 5, 48, 25, 2, 460, 461, 7, 35, 2, 2, 461, 462, 5, 52, 27, 2, 462, 77, 3, 2, 2, 2, 463, 464, 9, 9, 2, 2, 464, 79, 3, 2, 2, 2, 465, 468, 5, 82, 42, 2, 466, 468, 5, 84, 43, 2, 467, 465, 3, 2, 2, 2, 467, 466, 3, 2, 2, 2, 468, 81, 3, 2, 2, 2, 469, 471, 9, 2, 2, 2, 470, 469, 3, 2, 2, 2, 470, 471, 3, 2, 2, 2, 471, 472, 3, 2, 2, 2, 472, 473, 7, 31, 2, 2, 473, 83, 3, 2, 2, 2, 474, 476, 9, 2, 2, 2, 475, 474, 3, 2, 2, 2, 475, 476, 3, 2, 2, 2, 476, 477, 3, 2, 2, 2, 477, 478, 7, 30, 2, 2, 478, 85, 3, 2, 2, 2, 479, 480, 7, 29, 2, 2, 480, 87, 3, 2, 2, 2, 481, 482, 9, 10, 2, 2, 482, 89, 3, 2, 2, 2, 483, 484, 7, 7, 2, 2, 484, 485, 5, 92, 47, 2, 485, 91, 3, 2, 2, 2, 486, 487, 7, 65, 2, 2, 487, 488, 5, 4, 3, 2, 488, 489, 7, 66, 2, 2, 489, 93, 3, 2, 2, 2, 490, 491, 7, 17, 2, 2, 491, 495, 7, 96, 2, 2, 492, 493, 7, 17, 2, 2, 493, 495, 7, 97, 2, 2, 494, 490, 3, 2, 2, 2, 494, 492, 3, 2, 2, 2, 495, 95, 3, 2, 2, 2, 496, 497, 7, 5, 2, 2, 497, 500, 5, 42, 22, 2, 498, 499, 7, 85, 2, 2, 499, 501, 5, 46, 24, 2, 500, 498, 3, 2, 2, 2, 500, 501, 3, 2, 2, 2, 501, 511, 3, 2, 2, 2, 502, 503, 7, 86, 2, 2, 503, 508, 5, 98, 50, 2, 504, 505, 7, 36, 2, 2, 505, 507, 5, 98, 50, 2, 506, 504, 3, 2, 2, 2, 507, 510, 3, 2, 2, 2, 508, 506, 3, 2, 2, 2, 508, 509, 3, 2, 2, 2, 509, 512, 3, 2, 2, 2, 510, 508, 3, 2, 2, 2, 511, 502, 3, 2, 2, 2, 511, 512, 3, 2, 2, 2, 512, 97, 3, 2, 2, 2, 513, 514, 5, 46, 24, 2, 514, 515, 7, 35, 2, 2, 515, 517, 3, 2, 2, 2, 516, 513, 3, 2, 2, 2, 516, 517, 3, 2, 2, 2, 517, 518, 3, 2, 2, 2, 518, 519, 5, 46, 24, 2, 519, 99, 3, 2, 2, 2, 54, 111, 118, 133, 145, 154, 162, 166, 174, 176, 181, 188, 193, 200, 206, 214, 216, 226, 236, 239, 251, 259, 267, 271, 280, 290, 294, 300, 307, 317, 325, 347, 358, 369, 374, 385, 390, 394, 402, 411, 414, 422, 431, 442, 456, 467, 470, 475, 494, 500, 508, 511, 516] \ No newline at end of file +[3, 51485, 51898, 1421, 44986, 20307, 1543, 60043, 49729, 3, 106, 525, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 4, 13, 9, 13, 4, 14, 9, 14, 4, 15, 9, 15, 4, 16, 9, 16, 4, 17, 9, 17, 4, 18, 9, 18, 4, 19, 9, 19, 4, 20, 9, 20, 4, 21, 9, 21, 4, 22, 9, 22, 4, 23, 9, 23, 4, 24, 9, 24, 4, 25, 9, 25, 4, 26, 9, 26, 4, 27, 9, 27, 4, 28, 9, 28, 4, 29, 9, 29, 4, 30, 9, 30, 4, 31, 9, 31, 4, 32, 9, 32, 4, 33, 9, 33, 4, 34, 9, 34, 4, 35, 9, 35, 4, 36, 9, 36, 4, 37, 9, 37, 4, 38, 9, 38, 4, 39, 9, 39, 4, 40, 9, 40, 4, 41, 9, 41, 4, 42, 9, 42, 4, 43, 9, 43, 4, 44, 9, 44, 4, 45, 9, 45, 4, 46, 9, 46, 4, 47, 9, 47, 4, 48, 9, 48, 4, 49, 9, 49, 4, 50, 9, 50, 3, 2, 3, 2, 3, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 7, 3, 110, 10, 3, 12, 3, 14, 3, 113, 11, 3, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 119, 10, 4, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 3, 5, 5, 5, 134, 10, 5, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 146, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 153, 10, 7, 12, 7, 14, 7, 156, 11, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 5, 7, 163, 10, 7, 3, 7, 3, 7, 5, 7, 167, 10, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 3, 7, 7, 7, 175, 10, 7, 12, 7, 14, 7, 178, 11, 7, 3, 8, 3, 8, 5, 8, 182, 10, 8, 3, 8, 3, 8, 3, 8, 3, 8, 3, 8, 5, 8, 189, 10, 8, 3, 8, 3, 8, 3, 8, 5, 8, 194, 10, 8, 3, 9, 3, 9, 3, 9, 3, 9, 3, 9, 5, 9, 201, 10, 9, 3, 10, 3, 10, 3, 10, 3, 10, 5, 10, 207, 10, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 3, 10, 7, 10, 215, 10, 10, 12, 10, 14, 10, 218, 11, 10, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 3, 11, 5, 11, 227, 10, 11, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 3, 12, 7, 12, 235, 10, 12, 12, 12, 14, 12, 238, 11, 12, 5, 12, 240, 10, 12, 3, 12, 3, 12, 3, 13, 3, 13, 3, 13, 3, 14, 3, 14, 3, 14, 7, 14, 250, 10, 14, 12, 14, 14, 14, 253, 11, 14, 3, 15, 3, 15, 3, 15, 3, 15, 3, 15, 5, 15, 260, 10, 15, 3, 16, 3, 16, 3, 16, 3, 16, 7, 16, 266, 10, 16, 12, 16, 14, 16, 269, 11, 16, 3, 16, 5, 16, 272, 10, 16, 3, 17, 3, 17, 3, 17, 3, 17, 3, 17, 7, 17, 279, 10, 17, 12, 17, 14, 17, 282, 11, 17, 3, 17, 3, 17, 3, 18, 3, 18, 3, 18, 3, 19, 3, 19, 5, 19, 291, 10, 19, 3, 19, 3, 19, 5, 19, 295, 10, 19, 3, 20, 3, 20, 3, 20, 3, 20, 5, 20, 301, 10, 20, 3, 21, 3, 21, 3, 22, 3, 22, 3, 22, 7, 22, 308, 10, 22, 12, 22, 14, 22, 311, 11, 22, 3, 23, 3, 23, 3, 23, 7, 23, 316, 10, 23, 12, 23, 14, 23, 319, 11, 23, 3, 24, 3, 24, 3, 25, 3, 25, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 338, 10, 26, 12, 26, 14, 26, 341, 11, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 349, 10, 26, 12, 26, 14, 26, 352, 11, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 3, 26, 7, 26, 360, 10, 26, 12, 26, 14, 26, 363, 11, 26, 3, 26, 3, 26, 5, 26, 367, 10, 26, 3, 27, 3, 27, 3, 27, 3, 28, 3, 28, 3, 28, 3, 28, 7, 28, 376, 10, 28, 12, 28, 14, 28, 379, 11, 28, 3, 29, 3, 29, 5, 29, 383, 10, 29, 3, 29, 3, 29, 5, 29, 387, 10, 29, 3, 30, 3, 30, 3, 30, 3, 30, 7, 30, 393, 10, 30, 12, 30, 14, 30, 396, 11, 30, 3, 30, 3, 30, 3, 30, 3, 30, 7, 30, 402, 10, 30, 12, 30, 14, 30, 405, 11, 30, 5, 30, 407, 10, 30, 3, 31, 3, 31, 3, 31, 3, 31, 7, 31, 413, 10, 31, 12, 31, 14, 31, 416, 11, 31, 3, 32, 3, 32, 3, 32, 3, 32, 7, 32, 422, 10, 32, 12, 32, 14, 32, 425, 11, 32, 3, 33, 3, 33, 3, 33, 3, 33, 3, 34, 3, 34, 3, 34, 3, 34, 5, 34, 435, 10, 34, 3, 35, 3, 35, 3, 35, 3, 35, 3, 36, 3, 36, 3, 36, 3, 37, 3, 37, 3, 37, 7, 37, 447, 10, 37, 12, 37, 14, 37, 450, 11, 37, 3, 38, 3, 38, 3, 38, 3, 38, 3, 39, 3, 39, 3, 40, 3, 40, 5, 40, 460, 10, 40, 3, 41, 5, 41, 463, 10, 41, 3, 41, 3, 41, 3, 42, 5, 42, 468, 10, 42, 3, 42, 3, 42, 3, 43, 3, 43, 3, 44, 3, 44, 3, 45, 3, 45, 3, 45, 3, 46, 3, 46, 3, 46, 3, 46, 3, 47, 3, 47, 3, 47, 3, 47, 5, 47, 487, 10, 47, 3, 48, 3, 48, 7, 48, 491, 10, 48, 12, 48, 14, 48, 494, 11, 48, 3, 48, 3, 48, 3, 48, 5, 48, 499, 10, 48, 3, 48, 3, 48, 3, 48, 3, 48, 7, 48, 505, 10, 48, 12, 48, 14, 48, 508, 11, 48, 5, 48, 510, 10, 48, 3, 49, 3, 49, 3, 49, 5, 49, 515, 10, 49, 3, 49, 3, 49, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 3, 50, 2, 2, 5, 4, 12, 18, 51, 2, 2, 4, 2, 6, 2, 8, 2, 10, 2, 12, 2, 14, 2, 16, 2, 18, 2, 20, 2, 22, 2, 24, 2, 26, 2, 28, 2, 30, 2, 32, 2, 34, 2, 36, 2, 38, 2, 40, 2, 42, 2, 44, 2, 46, 2, 48, 2, 50, 2, 52, 2, 54, 2, 56, 2, 58, 2, 60, 2, 62, 2, 64, 2, 66, 2, 68, 2, 70, 2, 72, 2, 74, 2, 76, 2, 78, 2, 80, 2, 82, 2, 84, 2, 86, 2, 88, 2, 90, 2, 92, 2, 94, 2, 96, 2, 98, 2, 2, 11, 3, 2, 60, 61, 3, 2, 62, 64, 4, 2, 68, 68, 73, 73, 3, 2, 67, 68, 4, 2, 68, 68, 77, 77, 4, 2, 34, 34, 37, 37, 3, 2, 40, 41, 4, 2, 39, 39, 53, 53, 3, 2, 54, 59, 2, 554, 2, 100, 3, 2, 2, 2, 4, 103, 3, 2, 2, 2, 6, 118, 3, 2, 2, 2, 8, 133, 3, 2, 2, 2, 10, 135, 3, 2, 2, 2, 12, 166, 3, 2, 2, 2, 14, 193, 3, 2, 2, 2, 16, 200, 3, 2, 2, 2, 18, 206, 3, 2, 2, 2, 20, 226, 3, 2, 2, 2, 22, 228, 3, 2, 2, 2, 24, 243, 3, 2, 2, 2, 26, 246, 3, 2, 2, 2, 28, 259, 3, 2, 2, 2, 30, 261, 3, 2, 2, 2, 32, 273, 3, 2, 2, 2, 34, 285, 3, 2, 2, 2, 36, 288, 3, 2, 2, 2, 38, 296, 3, 2, 2, 2, 40, 302, 3, 2, 2, 2, 42, 304, 3, 2, 2, 2, 44, 312, 3, 2, 2, 2, 46, 320, 3, 2, 2, 2, 48, 322, 3, 2, 2, 2, 50, 366, 3, 2, 2, 2, 52, 368, 3, 2, 2, 2, 54, 371, 3, 2, 2, 2, 56, 380, 3, 2, 2, 2, 58, 406, 3, 2, 2, 2, 60, 408, 3, 2, 2, 2, 62, 417, 3, 2, 2, 2, 64, 426, 3, 2, 2, 2, 66, 430, 3, 2, 2, 2, 68, 436, 3, 2, 2, 2, 70, 440, 3, 2, 2, 2, 72, 443, 3, 2, 2, 2, 74, 451, 3, 2, 2, 2, 76, 455, 3, 2, 2, 2, 78, 459, 3, 2, 2, 2, 80, 462, 3, 2, 2, 2, 82, 467, 3, 2, 2, 2, 84, 471, 3, 2, 2, 2, 86, 473, 3, 2, 2, 2, 88, 475, 3, 2, 2, 2, 90, 478, 3, 2, 2, 2, 92, 486, 3, 2, 2, 2, 94, 488, 3, 2, 2, 2, 96, 514, 3, 2, 2, 2, 98, 518, 3, 2, 2, 2, 100, 101, 5, 4, 3, 2, 101, 102, 7, 2, 2, 3, 102, 3, 3, 2, 2, 2, 103, 104, 8, 3, 1, 2, 104, 105, 5, 6, 4, 2, 105, 111, 3, 2, 2, 2, 106, 107, 12, 3, 2, 2, 107, 108, 7, 28, 2, 2, 108, 110, 5, 8, 5, 2, 109, 106, 3, 2, 2, 2, 110, 113, 3, 2, 2, 2, 111, 109, 3, 2, 2, 2, 111, 112, 3, 2, 2, 2, 112, 5, 3, 2, 2, 2, 113, 111, 3, 2, 2, 2, 114, 119, 5, 88, 45, 2, 115, 119, 5, 30, 16, 2, 116, 119, 5, 24, 13, 2, 117, 119, 5, 92, 47, 2, 118, 114, 3, 2, 2, 2, 118, 115, 3, 2, 2, 2, 118, 116, 3, 2, 2, 2, 118, 117, 3, 2, 2, 2, 119, 7, 3, 2, 2, 2, 120, 134, 5, 34, 18, 2, 121, 134, 5, 38, 20, 2, 122, 134, 5, 52, 27, 2, 123, 134, 5, 58, 30, 2, 124, 134, 5, 54, 28, 2, 125, 134, 5, 36, 19, 2, 126, 134, 5, 10, 6, 2, 127, 134, 5, 60, 31, 2, 128, 134, 5, 62, 32, 2, 129, 134, 5, 66, 34, 2, 130, 134, 5, 68, 35, 2, 131, 134, 5, 94, 48, 2, 132, 134, 5, 70, 36, 2, 133, 120, 3, 2, 2, 2, 133, 121, 3, 2, 2, 2, 133, 122, 3, 2, 2, 2, 133, 123, 3, 2, 2, 2, 133, 124, 3, 2, 2, 2, 133, 125, 3, 2, 2, 2, 133, 126, 3, 2, 2, 2, 133, 127, 3, 2, 2, 2, 133, 128, 3, 2, 2, 2, 133, 129, 3, 2, 2, 2, 133, 130, 3, 2, 2, 2, 133, 131, 3, 2, 2, 2, 133, 132, 3, 2, 2, 2, 134, 9, 3, 2, 2, 2, 135, 136, 7, 20, 2, 2, 136, 137, 5, 12, 7, 2, 137, 11, 3, 2, 2, 2, 138, 139, 8, 7, 1, 2, 139, 140, 7, 46, 2, 2, 140, 167, 5, 12, 7, 9, 141, 167, 5, 16, 9, 2, 142, 167, 5, 14, 8, 2, 143, 145, 5, 16, 9, 2, 144, 146, 7, 46, 2, 2, 145, 144, 3, 2, 2, 2, 145, 146, 3, 2, 2, 2, 146, 147, 3, 2, 2, 2, 147, 148, 7, 43, 2, 2, 148, 149, 7, 42, 2, 2, 149, 154, 5, 16, 9, 2, 150, 151, 7, 36, 2, 2, 151, 153, 5, 16, 9, 2, 152, 150, 3, 2, 2, 2, 153, 156, 3, 2, 2, 2, 154, 152, 3, 2, 2, 2, 154, 155, 3, 2, 2, 2, 155, 157, 3, 2, 2, 2, 156, 154, 3, 2, 2, 2, 157, 158, 7, 52, 2, 2, 158, 167, 3, 2, 2, 2, 159, 160, 5, 16, 9, 2, 160, 162, 7, 44, 2, 2, 161, 163, 7, 46, 2, 2, 162, 161, 3, 2, 2, 2, 162, 163, 3, 2, 2, 2, 163, 164, 3, 2, 2, 2, 164, 165, 7, 47, 2, 2, 165, 167, 3, 2, 2, 2, 166, 138, 3, 2, 2, 2, 166, 141, 3, 2, 2, 2, 166, 142, 3, 2, 2, 2, 166, 143, 3, 2, 2, 2, 166, 159, 3, 2, 2, 2, 167, 176, 3, 2, 2, 2, 168, 169, 12, 6, 2, 2, 169, 170, 7, 33, 2, 2, 170, 175, 5, 12, 7, 7, 171, 172, 12, 5, 2, 2, 172, 173, 7, 49, 2, 2, 173, 175, 5, 12, 7, 6, 174, 168, 3, 2, 2, 2, 174, 171, 3, 2, 2, 2, 175, 178, 3, 2, 2, 2, 176, 174, 3, 2, 2, 2, 176, 177, 3, 2, 2, 2, 177, 13, 3, 2, 2, 2, 178, 176, 3, 2, 2, 2, 179, 181, 5, 16, 9, 2, 180, 182, 7, 46, 2, 2, 181, 180, 3, 2, 2, 2, 181, 182, 3, 2, 2, 2, 182, 183, 3, 2, 2, 2, 183, 184, 7, 45, 2, 2, 184, 185, 5, 84, 43, 2, 185, 194, 3, 2, 2, 2, 186, 188, 5, 16, 9, 2, 187, 189, 7, 46, 2, 2, 188, 187, 3, 2, 2, 2, 188, 189, 3, 2, 2, 2, 189, 190, 3, 2, 2, 2, 190, 191, 7, 51, 2, 2, 191, 192, 5, 84, 43, 2, 192, 194, 3, 2, 2, 2, 193, 179, 3, 2, 2, 2, 193, 186, 3, 2, 2, 2, 194, 15, 3, 2, 2, 2, 195, 201, 5, 18, 10, 2, 196, 197, 5, 18, 10, 2, 197, 198, 5, 86, 44, 2, 198, 199, 5, 18, 10, 2, 199, 201, 3, 2, 2, 2, 200, 195, 3, 2, 2, 2, 200, 196, 3, 2, 2, 2, 201, 17, 3, 2, 2, 2, 202, 203, 8, 10, 1, 2, 203, 207, 5, 20, 11, 2, 204, 205, 9, 2, 2, 2, 205, 207, 5, 18, 10, 5, 206, 202, 3, 2, 2, 2, 206, 204, 3, 2, 2, 2, 207, 216, 3, 2, 2, 2, 208, 209, 12, 4, 2, 2, 209, 210, 9, 3, 2, 2, 210, 215, 5, 18, 10, 5, 211, 212, 12, 3, 2, 2, 212, 213, 9, 2, 2, 2, 213, 215, 5, 18, 10, 4, 214, 208, 3, 2, 2, 2, 214, 211, 3, 2, 2, 2, 215, 218, 3, 2, 2, 2, 216, 214, 3, 2, 2, 2, 216, 217, 3, 2, 2, 2, 217, 19, 3, 2, 2, 2, 218, 216, 3, 2, 2, 2, 219, 227, 5, 50, 26, 2, 220, 227, 5, 42, 22, 2, 221, 227, 5, 22, 12, 2, 222, 223, 7, 42, 2, 2, 223, 224, 5, 12, 7, 2, 224, 225, 7, 52, 2, 2, 225, 227, 3, 2, 2, 2, 226, 219, 3, 2, 2, 2, 226, 220, 3, 2, 2, 2, 226, 221, 3, 2, 2, 2, 226, 222, 3, 2, 2, 2, 227, 21, 3, 2, 2, 2, 228, 229, 5, 46, 24, 2, 229, 239, 7, 42, 2, 2, 230, 240, 7, 62, 2, 2, 231, 236, 5, 12, 7, 2, 232, 233, 7, 36, 2, 2, 233, 235, 5, 12, 7, 2, 234, 232, 3, 2, 2, 2, 235, 238, 3, 2, 2, 2, 236, 234, 3, 2, 2, 2, 236, 237, 3, 2, 2, 2, 237, 240, 3, 2, 2, 2, 238, 236, 3, 2, 2, 2, 239, 230, 3, 2, 2, 2, 239, 231, 3, 2, 2, 2, 239, 240, 3, 2, 2, 2, 240, 241, 3, 2, 2, 2, 241, 242, 7, 52, 2, 2, 242, 23, 3, 2, 2, 2, 243, 244, 7, 16, 2, 2, 244, 245, 5, 26, 14, 2, 245, 25, 3, 2, 2, 2, 246, 251, 5, 28, 15, 2, 247, 248, 7, 36, 2, 2, 248, 250, 5, 28, 15, 2, 249, 247, 3, 2, 2, 2, 250, 253, 3, 2, 2, 2, 251, 249, 3, 2, 2, 2, 251, 252, 3, 2, 2, 2, 252, 27, 3, 2, 2, 2, 253, 251, 3, 2, 2, 2, 254, 260, 5, 12, 7, 2, 255, 256, 5, 42, 22, 2, 256, 257, 7, 35, 2, 2, 257, 258, 5, 12, 7, 2, 258, 260, 3, 2, 2, 2, 259, 254, 3, 2, 2, 2, 259, 255, 3, 2, 2, 2, 260, 29, 3, 2, 2, 2, 261, 262, 7, 8, 2, 2, 262, 267, 5, 40, 21, 2, 263, 264, 7, 36, 2, 2, 264, 266, 5, 40, 21, 2, 265, 263, 3, 2, 2, 2, 266, 269, 3, 2, 2, 2, 267, 265, 3, 2, 2, 2, 267, 268, 3, 2, 2, 2, 268, 271, 3, 2, 2, 2, 269, 267, 3, 2, 2, 2, 270, 272, 5, 32, 17, 2, 271, 270, 3, 2, 2, 2, 271, 272, 3, 2, 2, 2, 272, 31, 3, 2, 2, 2, 273, 274, 7, 65, 2, 2, 274, 275, 7, 72, 2, 2, 275, 280, 5, 40, 21, 2, 276, 277, 7, 36, 2, 2, 277, 279, 5, 40, 21, 2, 278, 276, 3, 2, 2, 2, 279, 282, 3, 2, 2, 2, 280, 278, 3, 2, 2, 2, 280, 281, 3, 2, 2, 2, 281, 283, 3, 2, 2, 2, 282, 280, 3, 2, 2, 2, 283, 284, 7, 66, 2, 2, 284, 33, 3, 2, 2, 2, 285, 286, 7, 6, 2, 2, 286, 287, 5, 26, 14, 2, 287, 35, 3, 2, 2, 2, 288, 290, 7, 19, 2, 2, 289, 291, 5, 26, 14, 2, 290, 289, 3, 2, 2, 2, 290, 291, 3, 2, 2, 2, 291, 294, 3, 2, 2, 2, 292, 293, 7, 32, 2, 2, 293, 295, 5, 26, 14, 2, 294, 292, 3, 2, 2, 2, 294, 295, 3, 2, 2, 2, 295, 37, 3, 2, 2, 2, 296, 297, 7, 10, 2, 2, 297, 300, 5, 26, 14, 2, 298, 299, 7, 32, 2, 2, 299, 301, 5, 26, 14, 2, 300, 298, 3, 2, 2, 2, 300, 301, 3, 2, 2, 2, 301, 39, 3, 2, 2, 2, 302, 303, 9, 4, 2, 2, 303, 41, 3, 2, 2, 2, 304, 309, 5, 46, 24, 2, 305, 306, 7, 38, 2, 2, 306, 308, 5, 46, 24, 2, 307, 305, 3, 2, 2, 2, 308, 311, 3, 2, 2, 2, 309, 307, 3, 2, 2, 2, 309, 310, 3, 2, 2, 2, 310, 43, 3, 2, 2, 2, 311, 309, 3, 2, 2, 2, 312, 317, 5, 48, 25, 2, 313, 314, 7, 38, 2, 2, 314, 316, 5, 48, 25, 2, 315, 313, 3, 2, 2, 2, 316, 319, 3, 2, 2, 2, 317, 315, 3, 2, 2, 2, 317, 318, 3, 2, 2, 2, 318, 45, 3, 2, 2, 2, 319, 317, 3, 2, 2, 2, 320, 321, 9, 5, 2, 2, 321, 47, 3, 2, 2, 2, 322, 323, 9, 6, 2, 2, 323, 49, 3, 2, 2, 2, 324, 367, 7, 47, 2, 2, 325, 326, 5, 82, 42, 2, 326, 327, 7, 67, 2, 2, 327, 367, 3, 2, 2, 2, 328, 367, 5, 80, 41, 2, 329, 367, 5, 82, 42, 2, 330, 367, 5, 76, 39, 2, 331, 367, 7, 50, 2, 2, 332, 367, 5, 84, 43, 2, 333, 334, 7, 65, 2, 2, 334, 339, 5, 78, 40, 2, 335, 336, 7, 36, 2, 2, 336, 338, 5, 78, 40, 2, 337, 335, 3, 2, 2, 2, 338, 341, 3, 2, 2, 2, 339, 337, 3, 2, 2, 2, 339, 340, 3, 2, 2, 2, 340, 342, 3, 2, 2, 2, 341, 339, 3, 2, 2, 2, 342, 343, 7, 66, 2, 2, 343, 367, 3, 2, 2, 2, 344, 345, 7, 65, 2, 2, 345, 350, 5, 76, 39, 2, 346, 347, 7, 36, 2, 2, 347, 349, 5, 76, 39, 2, 348, 346, 3, 2, 2, 2, 349, 352, 3, 2, 2, 2, 350, 348, 3, 2, 2, 2, 350, 351, 3, 2, 2, 2, 351, 353, 3, 2, 2, 2, 352, 350, 3, 2, 2, 2, 353, 354, 7, 66, 2, 2, 354, 367, 3, 2, 2, 2, 355, 356, 7, 65, 2, 2, 356, 361, 5, 84, 43, 2, 357, 358, 7, 36, 2, 2, 358, 360, 5, 84, 43, 2, 359, 357, 3, 2, 2, 2, 360, 363, 3, 2, 2, 2, 361, 359, 3, 2, 2, 2, 361, 362, 3, 2, 2, 2, 362, 364, 3, 2, 2, 2, 363, 361, 3, 2, 2, 2, 364, 365, 7, 66, 2, 2, 365, 367, 3, 2, 2, 2, 366, 324, 3, 2, 2, 2, 366, 325, 3, 2, 2, 2, 366, 328, 3, 2, 2, 2, 366, 329, 3, 2, 2, 2, 366, 330, 3, 2, 2, 2, 366, 331, 3, 2, 2, 2, 366, 332, 3, 2, 2, 2, 366, 333, 3, 2, 2, 2, 366, 344, 3, 2, 2, 2, 366, 355, 3, 2, 2, 2, 367, 51, 3, 2, 2, 2, 368, 369, 7, 12, 2, 2, 369, 370, 7, 30, 2, 2, 370, 53, 3, 2, 2, 2, 371, 372, 7, 18, 2, 2, 372, 377, 5, 56, 29, 2, 373, 374, 7, 36, 2, 2, 374, 376, 5, 56, 29, 2, 375, 373, 3, 2, 2, 2, 376, 379, 3, 2, 2, 2, 377, 375, 3, 2, 2, 2, 377, 378, 3, 2, 2, 2, 378, 55, 3, 2, 2, 2, 379, 377, 3, 2, 2, 2, 380, 382, 5, 12, 7, 2, 381, 383, 9, 7, 2, 2, 382, 381, 3, 2, 2, 2, 382, 383, 3, 2, 2, 2, 383, 386, 3, 2, 2, 2, 384, 385, 7, 48, 2, 2, 385, 387, 9, 8, 2, 2, 386, 384, 3, 2, 2, 2, 386, 387, 3, 2, 2, 2, 387, 57, 3, 2, 2, 2, 388, 389, 7, 11, 2, 2, 389, 394, 5, 44, 23, 2, 390, 391, 7, 36, 2, 2, 391, 393, 5, 44, 23, 2, 392, 390, 3, 2, 2, 2, 393, 396, 3, 2, 2, 2, 394, 392, 3, 2, 2, 2, 394, 395, 3, 2, 2, 2, 395, 407, 3, 2, 2, 2, 396, 394, 3, 2, 2, 2, 397, 398, 7, 14, 2, 2, 398, 403, 5, 44, 23, 2, 399, 400, 7, 36, 2, 2, 400, 402, 5, 44, 23, 2, 401, 399, 3, 2, 2, 2, 402, 405, 3, 2, 2, 2, 403, 401, 3, 2, 2, 2, 403, 404, 3, 2, 2, 2, 404, 407, 3, 2, 2, 2, 405, 403, 3, 2, 2, 2, 406, 388, 3, 2, 2, 2, 406, 397, 3, 2, 2, 2, 407, 59, 3, 2, 2, 2, 408, 409, 7, 4, 2, 2, 409, 414, 5, 44, 23, 2, 410, 411, 7, 36, 2, 2, 411, 413, 5, 44, 23, 2, 412, 410, 3, 2, 2, 2, 413, 416, 3, 2, 2, 2, 414, 412, 3, 2, 2, 2, 414, 415, 3, 2, 2, 2, 415, 61, 3, 2, 2, 2, 416, 414, 3, 2, 2, 2, 417, 418, 7, 15, 2, 2, 418, 423, 5, 64, 33, 2, 419, 420, 7, 36, 2, 2, 420, 422, 5, 64, 33, 2, 421, 419, 3, 2, 2, 2, 422, 425, 3, 2, 2, 2, 423, 421, 3, 2, 2, 2, 423, 424, 3, 2, 2, 2, 424, 63, 3, 2, 2, 2, 425, 423, 3, 2, 2, 2, 426, 427, 5, 44, 23, 2, 427, 428, 7, 81, 2, 2, 428, 429, 5, 44, 23, 2, 429, 65, 3, 2, 2, 2, 430, 431, 7, 3, 2, 2, 431, 432, 5, 20, 11, 2, 432, 434, 5, 84, 43, 2, 433, 435, 5, 72, 37, 2, 434, 433, 3, 2, 2, 2, 434, 435, 3, 2, 2, 2, 435, 67, 3, 2, 2, 2, 436, 437, 7, 9, 2, 2, 437, 438, 5, 20, 11, 2, 438, 439, 5, 84, 43, 2, 439, 69, 3, 2, 2, 2, 440, 441, 7, 13, 2, 2, 441, 442, 5, 42, 22, 2, 442, 71, 3, 2, 2, 2, 443, 448, 5, 74, 38, 2, 444, 445, 7, 36, 2, 2, 445, 447, 5, 74, 38, 2, 446, 444, 3, 2, 2, 2, 447, 450, 3, 2, 2, 2, 448, 446, 3, 2, 2, 2, 448, 449, 3, 2, 2, 2, 449, 73, 3, 2, 2, 2, 450, 448, 3, 2, 2, 2, 451, 452, 5, 46, 24, 2, 452, 453, 7, 35, 2, 2, 453, 454, 5, 50, 26, 2, 454, 75, 3, 2, 2, 2, 455, 456, 9, 9, 2, 2, 456, 77, 3, 2, 2, 2, 457, 460, 5, 80, 41, 2, 458, 460, 5, 82, 42, 2, 459, 457, 3, 2, 2, 2, 459, 458, 3, 2, 2, 2, 460, 79, 3, 2, 2, 2, 461, 463, 9, 2, 2, 2, 462, 461, 3, 2, 2, 2, 462, 463, 3, 2, 2, 2, 463, 464, 3, 2, 2, 2, 464, 465, 7, 31, 2, 2, 465, 81, 3, 2, 2, 2, 466, 468, 9, 2, 2, 2, 467, 466, 3, 2, 2, 2, 467, 468, 3, 2, 2, 2, 468, 469, 3, 2, 2, 2, 469, 470, 7, 30, 2, 2, 470, 83, 3, 2, 2, 2, 471, 472, 7, 29, 2, 2, 472, 85, 3, 2, 2, 2, 473, 474, 9, 10, 2, 2, 474, 87, 3, 2, 2, 2, 475, 476, 7, 7, 2, 2, 476, 477, 5, 90, 46, 2, 477, 89, 3, 2, 2, 2, 478, 479, 7, 65, 2, 2, 479, 480, 5, 4, 3, 2, 480, 481, 7, 66, 2, 2, 481, 91, 3, 2, 2, 2, 482, 483, 7, 17, 2, 2, 483, 487, 7, 97, 2, 2, 484, 485, 7, 17, 2, 2, 485, 487, 7, 98, 2, 2, 486, 482, 3, 2, 2, 2, 486, 484, 3, 2, 2, 2, 487, 93, 3, 2, 2, 2, 488, 492, 7, 5, 2, 2, 489, 491, 5, 98, 50, 2, 490, 489, 3, 2, 2, 2, 491, 494, 3, 2, 2, 2, 492, 490, 3, 2, 2, 2, 492, 493, 3, 2, 2, 2, 493, 495, 3, 2, 2, 2, 494, 492, 3, 2, 2, 2, 495, 498, 7, 87, 2, 2, 496, 497, 7, 85, 2, 2, 497, 499, 5, 44, 23, 2, 498, 496, 3, 2, 2, 2, 498, 499, 3, 2, 2, 2, 499, 509, 3, 2, 2, 2, 500, 501, 7, 86, 2, 2, 501, 506, 5, 96, 49, 2, 502, 503, 7, 36, 2, 2, 503, 505, 5, 96, 49, 2, 504, 502, 3, 2, 2, 2, 505, 508, 3, 2, 2, 2, 506, 504, 3, 2, 2, 2, 506, 507, 3, 2, 2, 2, 507, 510, 3, 2, 2, 2, 508, 506, 3, 2, 2, 2, 509, 500, 3, 2, 2, 2, 509, 510, 3, 2, 2, 2, 510, 95, 3, 2, 2, 2, 511, 512, 5, 44, 23, 2, 512, 513, 7, 35, 2, 2, 513, 515, 3, 2, 2, 2, 514, 511, 3, 2, 2, 2, 514, 515, 3, 2, 2, 2, 515, 516, 3, 2, 2, 2, 516, 517, 5, 44, 23, 2, 517, 97, 3, 2, 2, 2, 518, 519, 7, 65, 2, 2, 519, 520, 7, 103, 2, 2, 520, 521, 7, 102, 2, 2, 521, 522, 7, 103, 2, 2, 522, 523, 7, 66, 2, 2, 523, 99, 3, 2, 2, 2, 54, 111, 118, 133, 145, 154, 162, 166, 174, 176, 181, 188, 193, 200, 206, 214, 216, 226, 236, 239, 251, 259, 267, 271, 280, 290, 294, 300, 309, 317, 339, 350, 361, 366, 377, 382, 386, 394, 403, 406, 414, 423, 434, 448, 459, 462, 467, 486, 492, 498, 506, 509, 514] \ No newline at end of file diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.tokens b/packages/kbn-monaco/src/esql/antlr/esql_parser.tokens index 85a98c3a6d268..073febb9e1783 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.tokens +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.tokens @@ -72,7 +72,7 @@ FROM_UNQUOTED_IDENTIFIER=71 FROM_LINE_COMMENT=72 FROM_MULTILINE_COMMENT=73 FROM_WS=74 -PROJECT_UNQUOTED_IDENTIFIER=75 +UNQUOTED_ID_PATTERN=75 PROJECT_LINE_COMMENT=76 PROJECT_MULTILINE_COMMENT=77 PROJECT_WS=78 @@ -82,20 +82,26 @@ RENAME_MULTILINE_COMMENT=81 RENAME_WS=82 ON=83 WITH=84 -ENRICH_LINE_COMMENT=85 -ENRICH_MULTILINE_COMMENT=86 -ENRICH_WS=87 -ENRICH_FIELD_LINE_COMMENT=88 -ENRICH_FIELD_MULTILINE_COMMENT=89 -ENRICH_FIELD_WS=90 -MVEXPAND_LINE_COMMENT=91 -MVEXPAND_MULTILINE_COMMENT=92 -MVEXPAND_WS=93 -INFO=94 -FUNCTIONS=95 -SHOW_LINE_COMMENT=96 -SHOW_MULTILINE_COMMENT=97 -SHOW_WS=98 +ENRICH_POLICY_NAME=85 +ENRICH_LINE_COMMENT=86 +ENRICH_MULTILINE_COMMENT=87 +ENRICH_WS=88 +ENRICH_FIELD_LINE_COMMENT=89 +ENRICH_FIELD_MULTILINE_COMMENT=90 +ENRICH_FIELD_WS=91 +MVEXPAND_LINE_COMMENT=92 +MVEXPAND_MULTILINE_COMMENT=93 +MVEXPAND_WS=94 +INFO=95 +FUNCTIONS=96 +SHOW_LINE_COMMENT=97 +SHOW_MULTILINE_COMMENT=98 +SHOW_WS=99 +COLON=100 +SETTING=101 +SETTING_LINE_COMMENT=102 +SETTTING_MULTILINE_COMMENT=103 +SETTING_WS=104 '|'=26 '='=33 ','=34 @@ -115,3 +121,4 @@ SHOW_WS=98 '/'=61 '%'=62 ']'=64 +':'=100 diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser.ts b/packages/kbn-monaco/src/esql/antlr/esql_parser.ts index 90d3da25c8d1c..d4d52d328b189 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser.ts @@ -101,7 +101,7 @@ export class esql_parser extends Parser { public static readonly FROM_LINE_COMMENT = 72; public static readonly FROM_MULTILINE_COMMENT = 73; public static readonly FROM_WS = 74; - public static readonly PROJECT_UNQUOTED_IDENTIFIER = 75; + public static readonly UNQUOTED_ID_PATTERN = 75; public static readonly PROJECT_LINE_COMMENT = 76; public static readonly PROJECT_MULTILINE_COMMENT = 77; public static readonly PROJECT_WS = 78; @@ -111,20 +111,26 @@ export class esql_parser extends Parser { public static readonly RENAME_WS = 82; public static readonly ON = 83; public static readonly WITH = 84; - public static readonly ENRICH_LINE_COMMENT = 85; - public static readonly ENRICH_MULTILINE_COMMENT = 86; - public static readonly ENRICH_WS = 87; - public static readonly ENRICH_FIELD_LINE_COMMENT = 88; - public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 89; - public static readonly ENRICH_FIELD_WS = 90; - public static readonly MVEXPAND_LINE_COMMENT = 91; - public static readonly MVEXPAND_MULTILINE_COMMENT = 92; - public static readonly MVEXPAND_WS = 93; - public static readonly INFO = 94; - public static readonly FUNCTIONS = 95; - public static readonly SHOW_LINE_COMMENT = 96; - public static readonly SHOW_MULTILINE_COMMENT = 97; - public static readonly SHOW_WS = 98; + public static readonly ENRICH_POLICY_NAME = 85; + public static readonly ENRICH_LINE_COMMENT = 86; + public static readonly ENRICH_MULTILINE_COMMENT = 87; + public static readonly ENRICH_WS = 88; + public static readonly ENRICH_FIELD_LINE_COMMENT = 89; + public static readonly ENRICH_FIELD_MULTILINE_COMMENT = 90; + public static readonly ENRICH_FIELD_WS = 91; + public static readonly MVEXPAND_LINE_COMMENT = 92; + public static readonly MVEXPAND_MULTILINE_COMMENT = 93; + public static readonly MVEXPAND_WS = 94; + public static readonly INFO = 95; + public static readonly FUNCTIONS = 96; + public static readonly SHOW_LINE_COMMENT = 97; + public static readonly SHOW_MULTILINE_COMMENT = 98; + public static readonly SHOW_WS = 99; + public static readonly COLON = 100; + public static readonly SETTING = 101; + public static readonly SETTING_LINE_COMMENT = 102; + public static readonly SETTTING_MULTILINE_COMMENT = 103; + public static readonly SETTING_WS = 104; public static readonly RULE_singleStatement = 0; public static readonly RULE_query = 1; public static readonly RULE_sourceCommand = 2; @@ -144,49 +150,49 @@ export class esql_parser extends Parser { public static readonly RULE_evalCommand = 16; public static readonly RULE_statsCommand = 17; public static readonly RULE_inlinestatsCommand = 18; - public static readonly RULE_grouping = 19; - public static readonly RULE_fromIdentifier = 20; - public static readonly RULE_qualifiedName = 21; - public static readonly RULE_qualifiedNamePattern = 22; - public static readonly RULE_identifier = 23; - public static readonly RULE_identifierPattern = 24; - public static readonly RULE_constant = 25; - public static readonly RULE_limitCommand = 26; - public static readonly RULE_sortCommand = 27; - public static readonly RULE_orderExpression = 28; - public static readonly RULE_keepCommand = 29; - public static readonly RULE_dropCommand = 30; - public static readonly RULE_renameCommand = 31; - public static readonly RULE_renameClause = 32; - public static readonly RULE_dissectCommand = 33; - public static readonly RULE_grokCommand = 34; - public static readonly RULE_mvExpandCommand = 35; - public static readonly RULE_commandOptions = 36; - public static readonly RULE_commandOption = 37; - public static readonly RULE_booleanValue = 38; - public static readonly RULE_numericValue = 39; - public static readonly RULE_decimalValue = 40; - public static readonly RULE_integerValue = 41; - public static readonly RULE_string = 42; - public static readonly RULE_comparisonOperator = 43; - public static readonly RULE_explainCommand = 44; - public static readonly RULE_subqueryExpression = 45; - public static readonly RULE_showCommand = 46; - public static readonly RULE_enrichCommand = 47; - public static readonly RULE_enrichWithClause = 48; + public static readonly RULE_fromIdentifier = 19; + public static readonly RULE_qualifiedName = 20; + public static readonly RULE_qualifiedNamePattern = 21; + public static readonly RULE_identifier = 22; + public static readonly RULE_identifierPattern = 23; + public static readonly RULE_constant = 24; + public static readonly RULE_limitCommand = 25; + public static readonly RULE_sortCommand = 26; + public static readonly RULE_orderExpression = 27; + public static readonly RULE_keepCommand = 28; + public static readonly RULE_dropCommand = 29; + public static readonly RULE_renameCommand = 30; + public static readonly RULE_renameClause = 31; + public static readonly RULE_dissectCommand = 32; + public static readonly RULE_grokCommand = 33; + public static readonly RULE_mvExpandCommand = 34; + public static readonly RULE_commandOptions = 35; + public static readonly RULE_commandOption = 36; + public static readonly RULE_booleanValue = 37; + public static readonly RULE_numericValue = 38; + public static readonly RULE_decimalValue = 39; + public static readonly RULE_integerValue = 40; + public static readonly RULE_string = 41; + public static readonly RULE_comparisonOperator = 42; + public static readonly RULE_explainCommand = 43; + public static readonly RULE_subqueryExpression = 44; + public static readonly RULE_showCommand = 45; + public static readonly RULE_enrichCommand = 46; + public static readonly RULE_enrichWithClause = 47; + public static readonly RULE_setting = 48; // tslint:disable:no-trailing-whitespace public static readonly ruleNames: string[] = [ "singleStatement", "query", "sourceCommand", "processingCommand", "whereCommand", "booleanExpression", "regexBooleanExpression", "valueExpression", "operatorExpression", "primaryExpression", "functionExpression", "rowCommand", "fields", "field", "fromCommand", "metadata", "evalCommand", "statsCommand", "inlinestatsCommand", - "grouping", "fromIdentifier", "qualifiedName", "qualifiedNamePattern", - "identifier", "identifierPattern", "constant", "limitCommand", "sortCommand", - "orderExpression", "keepCommand", "dropCommand", "renameCommand", "renameClause", - "dissectCommand", "grokCommand", "mvExpandCommand", "commandOptions", - "commandOption", "booleanValue", "numericValue", "decimalValue", "integerValue", - "string", "comparisonOperator", "explainCommand", "subqueryExpression", - "showCommand", "enrichCommand", "enrichWithClause", + "fromIdentifier", "qualifiedName", "qualifiedNamePattern", "identifier", + "identifierPattern", "constant", "limitCommand", "sortCommand", "orderExpression", + "keepCommand", "dropCommand", "renameCommand", "renameClause", "dissectCommand", + "grokCommand", "mvExpandCommand", "commandOptions", "commandOption", "booleanValue", + "numericValue", "decimalValue", "integerValue", "string", "comparisonOperator", + "explainCommand", "subqueryExpression", "showCommand", "enrichCommand", + "enrichWithClause", "setting", ]; private static readonly _LITERAL_NAMES: Array = [ @@ -198,7 +204,12 @@ export class esql_parser extends Parser { "'.'", undefined, undefined, undefined, "'('", undefined, undefined, undefined, undefined, undefined, undefined, undefined, "'?'", undefined, "')'", undefined, "'=='", "'!='", "'<'", "'<='", "'>'", "'>='", "'+'", "'-'", "'*'", "'/'", - "'%'", undefined, "']'", + "'%'", undefined, "']'", undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, undefined, undefined, undefined, undefined, undefined, + undefined, undefined, "':'", ]; private static readonly _SYMBOLIC_NAMES: Array = [ undefined, "DISSECT", "DROP", "ENRICH", "EVAL", "EXPLAIN", "FROM", "GROK", @@ -212,13 +223,14 @@ export class esql_parser extends Parser { "PERCENT", "OPENING_BRACKET", "CLOSING_BRACKET", "UNQUOTED_IDENTIFIER", "QUOTED_IDENTIFIER", "EXPR_LINE_COMMENT", "EXPR_MULTILINE_COMMENT", "EXPR_WS", "METADATA", "FROM_UNQUOTED_IDENTIFIER", "FROM_LINE_COMMENT", "FROM_MULTILINE_COMMENT", - "FROM_WS", "PROJECT_UNQUOTED_IDENTIFIER", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", + "FROM_WS", "UNQUOTED_ID_PATTERN", "PROJECT_LINE_COMMENT", "PROJECT_MULTILINE_COMMENT", "PROJECT_WS", "AS", "RENAME_LINE_COMMENT", "RENAME_MULTILINE_COMMENT", - "RENAME_WS", "ON", "WITH", "ENRICH_LINE_COMMENT", "ENRICH_MULTILINE_COMMENT", - "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", "ENRICH_FIELD_MULTILINE_COMMENT", - "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", "MVEXPAND_MULTILINE_COMMENT", - "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", "SHOW_MULTILINE_COMMENT", - "SHOW_WS", + "RENAME_WS", "ON", "WITH", "ENRICH_POLICY_NAME", "ENRICH_LINE_COMMENT", + "ENRICH_MULTILINE_COMMENT", "ENRICH_WS", "ENRICH_FIELD_LINE_COMMENT", + "ENRICH_FIELD_MULTILINE_COMMENT", "ENRICH_FIELD_WS", "MVEXPAND_LINE_COMMENT", + "MVEXPAND_MULTILINE_COMMENT", "MVEXPAND_WS", "INFO", "FUNCTIONS", "SHOW_LINE_COMMENT", + "SHOW_MULTILINE_COMMENT", "SHOW_WS", "COLON", "SETTING", "SETTING_LINE_COMMENT", + "SETTTING_MULTILINE_COMMENT", "SETTING_WS", ]; public static readonly VOCABULARY: Vocabulary = new VocabularyImpl(esql_parser._LITERAL_NAMES, esql_parser._SYMBOLIC_NAMES, []); @@ -1396,7 +1408,7 @@ export class esql_parser extends Parser { case 1: { this.state = 287; - this.fields(); + _localctx._stats = this.fields(); } break; } @@ -1408,7 +1420,7 @@ export class esql_parser extends Parser { this.state = 290; this.match(esql_parser.BY); this.state = 291; - this.grouping(); + _localctx._grouping = this.fields(); } break; } @@ -1438,7 +1450,7 @@ export class esql_parser extends Parser { this.state = 294; this.match(esql_parser.INLINESTATS); this.state = 295; - this.fields(); + _localctx._stats = this.fields(); this.state = 298; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 26, this._ctx) ) { @@ -1447,7 +1459,7 @@ export class esql_parser extends Parser { this.state = 296; this.match(esql_parser.BY); this.state = 297; - this.grouping(); + _localctx._grouping = this.fields(); } break; } @@ -1468,58 +1480,14 @@ export class esql_parser extends Parser { return _localctx; } // @RuleVersion(0) - public grouping(): GroupingContext { - let _localctx: GroupingContext = new GroupingContext(this._ctx, this.state); - this.enterRule(_localctx, 38, esql_parser.RULE_grouping); - try { - let _alt: number; - this.enterOuterAlt(_localctx, 1); - { - this.state = 300; - this.qualifiedName(); - this.state = 305; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 27, this._ctx); - while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { - if (_alt === 1) { - { - { - this.state = 301; - this.match(esql_parser.COMMA); - this.state = 302; - this.qualifiedName(); - } - } - } - this.state = 307; - this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 27, this._ctx); - } - } - } - catch (re) { - if (re instanceof RecognitionException) { - _localctx.exception = re; - this._errHandler.reportError(this, re); - this._errHandler.recover(this, re); - } else { - throw re; - } - } - finally { - this.exitRule(); - } - return _localctx; - } - // @RuleVersion(0) public fromIdentifier(): FromIdentifierContext { let _localctx: FromIdentifierContext = new FromIdentifierContext(this._ctx, this.state); - this.enterRule(_localctx, 40, esql_parser.RULE_fromIdentifier); + this.enterRule(_localctx, 38, esql_parser.RULE_fromIdentifier); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 308; + this.state = 300; _la = this._input.LA(1); if (!(_la === esql_parser.QUOTED_IDENTIFIER || _la === esql_parser.FROM_UNQUOTED_IDENTIFIER)) { this._errHandler.recoverInline(this); @@ -1550,30 +1518,30 @@ export class esql_parser extends Parser { // @RuleVersion(0) public qualifiedName(): QualifiedNameContext { let _localctx: QualifiedNameContext = new QualifiedNameContext(this._ctx, this.state); - this.enterRule(_localctx, 42, esql_parser.RULE_qualifiedName); + this.enterRule(_localctx, 40, esql_parser.RULE_qualifiedName); try { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 310; + this.state = 302; this.identifier(); - this.state = 315; + this.state = 307; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 28, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 27, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 311; + this.state = 303; this.match(esql_parser.DOT); - this.state = 312; + this.state = 304; this.identifier(); } } } - this.state = 317; + this.state = 309; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 28, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 27, this._ctx); } } } @@ -1594,30 +1562,30 @@ export class esql_parser extends Parser { // @RuleVersion(0) public qualifiedNamePattern(): QualifiedNamePatternContext { let _localctx: QualifiedNamePatternContext = new QualifiedNamePatternContext(this._ctx, this.state); - this.enterRule(_localctx, 44, esql_parser.RULE_qualifiedNamePattern); + this.enterRule(_localctx, 42, esql_parser.RULE_qualifiedNamePattern); try { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 318; + this.state = 310; this.identifierPattern(); - this.state = 323; + this.state = 315; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 28, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 319; + this.state = 311; this.match(esql_parser.DOT); - this.state = 320; + this.state = 312; this.identifierPattern(); } } } - this.state = 325; + this.state = 317; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 29, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 28, this._ctx); } } } @@ -1638,12 +1606,12 @@ export class esql_parser extends Parser { // @RuleVersion(0) public identifier(): IdentifierContext { let _localctx: IdentifierContext = new IdentifierContext(this._ctx, this.state); - this.enterRule(_localctx, 46, esql_parser.RULE_identifier); + this.enterRule(_localctx, 44, esql_parser.RULE_identifier); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 326; + this.state = 318; _la = this._input.LA(1); if (!(_la === esql_parser.UNQUOTED_IDENTIFIER || _la === esql_parser.QUOTED_IDENTIFIER)) { this._errHandler.recoverInline(this); @@ -1674,14 +1642,14 @@ export class esql_parser extends Parser { // @RuleVersion(0) public identifierPattern(): IdentifierPatternContext { let _localctx: IdentifierPatternContext = new IdentifierPatternContext(this._ctx, this.state); - this.enterRule(_localctx, 48, esql_parser.RULE_identifierPattern); + this.enterRule(_localctx, 46, esql_parser.RULE_identifierPattern); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 328; + this.state = 320; _la = this._input.LA(1); - if (!(_la === esql_parser.QUOTED_IDENTIFIER || _la === esql_parser.PROJECT_UNQUOTED_IDENTIFIER)) { + if (!(_la === esql_parser.QUOTED_IDENTIFIER || _la === esql_parser.UNQUOTED_ID_PATTERN)) { this._errHandler.recoverInline(this); } else { if (this._input.LA(1) === Token.EOF) { @@ -1710,17 +1678,17 @@ export class esql_parser extends Parser { // @RuleVersion(0) public constant(): ConstantContext { let _localctx: ConstantContext = new ConstantContext(this._ctx, this.state); - this.enterRule(_localctx, 50, esql_parser.RULE_constant); + this.enterRule(_localctx, 48, esql_parser.RULE_constant); let _la: number; try { - this.state = 372; + this.state = 364; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 33, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 32, this._ctx) ) { case 1: _localctx = new NullLiteralContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 330; + this.state = 322; this.match(esql_parser.NULL); } break; @@ -1729,9 +1697,9 @@ export class esql_parser extends Parser { _localctx = new QualifiedIntegerLiteralContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 331; + this.state = 323; this.integerValue(); - this.state = 332; + this.state = 324; this.match(esql_parser.UNQUOTED_IDENTIFIER); } break; @@ -1740,7 +1708,7 @@ export class esql_parser extends Parser { _localctx = new DecimalLiteralContext(_localctx); this.enterOuterAlt(_localctx, 3); { - this.state = 334; + this.state = 326; this.decimalValue(); } break; @@ -1749,7 +1717,7 @@ export class esql_parser extends Parser { _localctx = new IntegerLiteralContext(_localctx); this.enterOuterAlt(_localctx, 4); { - this.state = 335; + this.state = 327; this.integerValue(); } break; @@ -1758,7 +1726,7 @@ export class esql_parser extends Parser { _localctx = new BooleanLiteralContext(_localctx); this.enterOuterAlt(_localctx, 5); { - this.state = 336; + this.state = 328; this.booleanValue(); } break; @@ -1767,7 +1735,7 @@ export class esql_parser extends Parser { _localctx = new InputParamContext(_localctx); this.enterOuterAlt(_localctx, 6); { - this.state = 337; + this.state = 329; this.match(esql_parser.PARAM); } break; @@ -1776,7 +1744,7 @@ export class esql_parser extends Parser { _localctx = new StringLiteralContext(_localctx); this.enterOuterAlt(_localctx, 7); { - this.state = 338; + this.state = 330; this.string(); } break; @@ -1785,27 +1753,27 @@ export class esql_parser extends Parser { _localctx = new NumericArrayLiteralContext(_localctx); this.enterOuterAlt(_localctx, 8); { - this.state = 339; + this.state = 331; this.match(esql_parser.OPENING_BRACKET); - this.state = 340; + this.state = 332; this.numericValue(); - this.state = 345; + this.state = 337; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 341; + this.state = 333; this.match(esql_parser.COMMA); - this.state = 342; + this.state = 334; this.numericValue(); } } - this.state = 347; + this.state = 339; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 348; + this.state = 340; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -1814,27 +1782,27 @@ export class esql_parser extends Parser { _localctx = new BooleanArrayLiteralContext(_localctx); this.enterOuterAlt(_localctx, 9); { - this.state = 350; + this.state = 342; this.match(esql_parser.OPENING_BRACKET); - this.state = 351; + this.state = 343; this.booleanValue(); - this.state = 356; + this.state = 348; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 352; + this.state = 344; this.match(esql_parser.COMMA); - this.state = 353; + this.state = 345; this.booleanValue(); } } - this.state = 358; + this.state = 350; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 359; + this.state = 351; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -1843,27 +1811,27 @@ export class esql_parser extends Parser { _localctx = new StringArrayLiteralContext(_localctx); this.enterOuterAlt(_localctx, 10); { - this.state = 361; + this.state = 353; this.match(esql_parser.OPENING_BRACKET); - this.state = 362; + this.state = 354; this.string(); - this.state = 367; + this.state = 359; this._errHandler.sync(this); _la = this._input.LA(1); while (_la === esql_parser.COMMA) { { { - this.state = 363; + this.state = 355; this.match(esql_parser.COMMA); - this.state = 364; + this.state = 356; this.string(); } } - this.state = 369; + this.state = 361; this._errHandler.sync(this); _la = this._input.LA(1); } - this.state = 370; + this.state = 362; this.match(esql_parser.CLOSING_BRACKET); } break; @@ -1886,13 +1854,13 @@ export class esql_parser extends Parser { // @RuleVersion(0) public limitCommand(): LimitCommandContext { let _localctx: LimitCommandContext = new LimitCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 52, esql_parser.RULE_limitCommand); + this.enterRule(_localctx, 50, esql_parser.RULE_limitCommand); try { this.enterOuterAlt(_localctx, 1); { - this.state = 374; + this.state = 366; this.match(esql_parser.LIMIT); - this.state = 375; + this.state = 367; this.match(esql_parser.INTEGER_LITERAL); } } @@ -1913,32 +1881,32 @@ export class esql_parser extends Parser { // @RuleVersion(0) public sortCommand(): SortCommandContext { let _localctx: SortCommandContext = new SortCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 54, esql_parser.RULE_sortCommand); + this.enterRule(_localctx, 52, esql_parser.RULE_sortCommand); try { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 377; + this.state = 369; this.match(esql_parser.SORT); - this.state = 378; + this.state = 370; this.orderExpression(); - this.state = 383; + this.state = 375; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 34, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 33, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 379; + this.state = 371; this.match(esql_parser.COMMA); - this.state = 380; + this.state = 372; this.orderExpression(); } } } - this.state = 385; + this.state = 377; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 34, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 33, this._ctx); } } } @@ -1959,19 +1927,19 @@ export class esql_parser extends Parser { // @RuleVersion(0) public orderExpression(): OrderExpressionContext { let _localctx: OrderExpressionContext = new OrderExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 56, esql_parser.RULE_orderExpression); + this.enterRule(_localctx, 54, esql_parser.RULE_orderExpression); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 386; + this.state = 378; this.booleanExpression(0); - this.state = 388; + this.state = 380; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 35, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 34, this._ctx) ) { case 1: { - this.state = 387; + this.state = 379; _localctx._ordering = this._input.LT(1); _la = this._input.LA(1); if (!(_la === esql_parser.ASC || _la === esql_parser.DESC)) { @@ -1987,14 +1955,14 @@ export class esql_parser extends Parser { } break; } - this.state = 392; + this.state = 384; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 36, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 35, this._ctx) ) { case 1: { - this.state = 390; + this.state = 382; this.match(esql_parser.NULLS); - this.state = 391; + this.state = 383; _localctx._nullOrdering = this._input.LT(1); _la = this._input.LA(1); if (!(_la === esql_parser.FIRST || _la === esql_parser.LAST)) { @@ -2029,63 +1997,63 @@ export class esql_parser extends Parser { // @RuleVersion(0) public keepCommand(): KeepCommandContext { let _localctx: KeepCommandContext = new KeepCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 58, esql_parser.RULE_keepCommand); + this.enterRule(_localctx, 56, esql_parser.RULE_keepCommand); try { let _alt: number; - this.state = 412; + this.state = 404; this._errHandler.sync(this); switch (this._input.LA(1)) { case esql_parser.KEEP: this.enterOuterAlt(_localctx, 1); { - this.state = 394; + this.state = 386; this.match(esql_parser.KEEP); - this.state = 395; + this.state = 387; this.qualifiedNamePattern(); - this.state = 400; + this.state = 392; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 37, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 36, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 396; + this.state = 388; this.match(esql_parser.COMMA); - this.state = 397; + this.state = 389; this.qualifiedNamePattern(); } } } - this.state = 402; + this.state = 394; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 37, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 36, this._ctx); } } break; case esql_parser.PROJECT: this.enterOuterAlt(_localctx, 2); { - this.state = 403; + this.state = 395; this.match(esql_parser.PROJECT); - this.state = 404; + this.state = 396; this.qualifiedNamePattern(); - this.state = 409; + this.state = 401; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 38, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 37, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 405; + this.state = 397; this.match(esql_parser.COMMA); - this.state = 406; + this.state = 398; this.qualifiedNamePattern(); } } } - this.state = 411; + this.state = 403; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 38, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 37, this._ctx); } } break; @@ -2110,32 +2078,32 @@ export class esql_parser extends Parser { // @RuleVersion(0) public dropCommand(): DropCommandContext { let _localctx: DropCommandContext = new DropCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 60, esql_parser.RULE_dropCommand); + this.enterRule(_localctx, 58, esql_parser.RULE_dropCommand); try { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 414; + this.state = 406; this.match(esql_parser.DROP); - this.state = 415; + this.state = 407; this.qualifiedNamePattern(); - this.state = 420; + this.state = 412; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 40, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 39, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 416; + this.state = 408; this.match(esql_parser.COMMA); - this.state = 417; + this.state = 409; this.qualifiedNamePattern(); } } } - this.state = 422; + this.state = 414; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 40, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 39, this._ctx); } } } @@ -2156,32 +2124,32 @@ export class esql_parser extends Parser { // @RuleVersion(0) public renameCommand(): RenameCommandContext { let _localctx: RenameCommandContext = new RenameCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 62, esql_parser.RULE_renameCommand); + this.enterRule(_localctx, 60, esql_parser.RULE_renameCommand); try { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 423; + this.state = 415; this.match(esql_parser.RENAME); - this.state = 424; + this.state = 416; this.renameClause(); - this.state = 429; + this.state = 421; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 41, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 40, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 425; + this.state = 417; this.match(esql_parser.COMMA); - this.state = 426; + this.state = 418; this.renameClause(); } } } - this.state = 431; + this.state = 423; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 41, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 40, this._ctx); } } } @@ -2202,15 +2170,15 @@ export class esql_parser extends Parser { // @RuleVersion(0) public renameClause(): RenameClauseContext { let _localctx: RenameClauseContext = new RenameClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 64, esql_parser.RULE_renameClause); + this.enterRule(_localctx, 62, esql_parser.RULE_renameClause); try { this.enterOuterAlt(_localctx, 1); { - this.state = 432; + this.state = 424; _localctx._oldName = this.qualifiedNamePattern(); - this.state = 433; + this.state = 425; this.match(esql_parser.AS); - this.state = 434; + this.state = 426; _localctx._newName = this.qualifiedNamePattern(); } } @@ -2231,22 +2199,22 @@ export class esql_parser extends Parser { // @RuleVersion(0) public dissectCommand(): DissectCommandContext { let _localctx: DissectCommandContext = new DissectCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 66, esql_parser.RULE_dissectCommand); + this.enterRule(_localctx, 64, esql_parser.RULE_dissectCommand); try { this.enterOuterAlt(_localctx, 1); { - this.state = 436; + this.state = 428; this.match(esql_parser.DISSECT); - this.state = 437; + this.state = 429; this.primaryExpression(); - this.state = 438; + this.state = 430; this.string(); - this.state = 440; + this.state = 432; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 42, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 41, this._ctx) ) { case 1: { - this.state = 439; + this.state = 431; this.commandOptions(); } break; @@ -2270,15 +2238,15 @@ export class esql_parser extends Parser { // @RuleVersion(0) public grokCommand(): GrokCommandContext { let _localctx: GrokCommandContext = new GrokCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 68, esql_parser.RULE_grokCommand); + this.enterRule(_localctx, 66, esql_parser.RULE_grokCommand); try { this.enterOuterAlt(_localctx, 1); { - this.state = 442; + this.state = 434; this.match(esql_parser.GROK); - this.state = 443; + this.state = 435; this.primaryExpression(); - this.state = 444; + this.state = 436; this.string(); } } @@ -2299,13 +2267,13 @@ export class esql_parser extends Parser { // @RuleVersion(0) public mvExpandCommand(): MvExpandCommandContext { let _localctx: MvExpandCommandContext = new MvExpandCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 70, esql_parser.RULE_mvExpandCommand); + this.enterRule(_localctx, 68, esql_parser.RULE_mvExpandCommand); try { this.enterOuterAlt(_localctx, 1); { - this.state = 446; + this.state = 438; this.match(esql_parser.MV_EXPAND); - this.state = 447; + this.state = 439; this.qualifiedName(); } } @@ -2326,30 +2294,30 @@ export class esql_parser extends Parser { // @RuleVersion(0) public commandOptions(): CommandOptionsContext { let _localctx: CommandOptionsContext = new CommandOptionsContext(this._ctx, this.state); - this.enterRule(_localctx, 72, esql_parser.RULE_commandOptions); + this.enterRule(_localctx, 70, esql_parser.RULE_commandOptions); try { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 449; + this.state = 441; this.commandOption(); - this.state = 454; + this.state = 446; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 43, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 42, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 450; + this.state = 442; this.match(esql_parser.COMMA); - this.state = 451; + this.state = 443; this.commandOption(); } } } - this.state = 456; + this.state = 448; this._errHandler.sync(this); - _alt = this.interpreter.adaptivePredict(this._input, 43, this._ctx); + _alt = this.interpreter.adaptivePredict(this._input, 42, this._ctx); } } } @@ -2370,15 +2338,15 @@ export class esql_parser extends Parser { // @RuleVersion(0) public commandOption(): CommandOptionContext { let _localctx: CommandOptionContext = new CommandOptionContext(this._ctx, this.state); - this.enterRule(_localctx, 74, esql_parser.RULE_commandOption); + this.enterRule(_localctx, 72, esql_parser.RULE_commandOption); try { this.enterOuterAlt(_localctx, 1); { - this.state = 457; + this.state = 449; this.identifier(); - this.state = 458; + this.state = 450; this.match(esql_parser.ASSIGN); - this.state = 459; + this.state = 451; this.constant(); } } @@ -2399,12 +2367,12 @@ export class esql_parser extends Parser { // @RuleVersion(0) public booleanValue(): BooleanValueContext { let _localctx: BooleanValueContext = new BooleanValueContext(this._ctx, this.state); - this.enterRule(_localctx, 76, esql_parser.RULE_booleanValue); + this.enterRule(_localctx, 74, esql_parser.RULE_booleanValue); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 461; + this.state = 453; _la = this._input.LA(1); if (!(_la === esql_parser.FALSE || _la === esql_parser.TRUE)) { this._errHandler.recoverInline(this); @@ -2435,15 +2403,15 @@ export class esql_parser extends Parser { // @RuleVersion(0) public numericValue(): NumericValueContext { let _localctx: NumericValueContext = new NumericValueContext(this._ctx, this.state); - this.enterRule(_localctx, 78, esql_parser.RULE_numericValue); + this.enterRule(_localctx, 76, esql_parser.RULE_numericValue); try { - this.state = 465; + this.state = 457; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 44, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 43, this._ctx) ) { case 1: this.enterOuterAlt(_localctx, 1); { - this.state = 463; + this.state = 455; this.decimalValue(); } break; @@ -2451,7 +2419,7 @@ export class esql_parser extends Parser { case 2: this.enterOuterAlt(_localctx, 2); { - this.state = 464; + this.state = 456; this.integerValue(); } break; @@ -2474,17 +2442,17 @@ export class esql_parser extends Parser { // @RuleVersion(0) public decimalValue(): DecimalValueContext { let _localctx: DecimalValueContext = new DecimalValueContext(this._ctx, this.state); - this.enterRule(_localctx, 80, esql_parser.RULE_decimalValue); + this.enterRule(_localctx, 78, esql_parser.RULE_decimalValue); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 468; + this.state = 460; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === esql_parser.PLUS || _la === esql_parser.MINUS) { { - this.state = 467; + this.state = 459; _la = this._input.LA(1); if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { this._errHandler.recoverInline(this); @@ -2499,7 +2467,7 @@ export class esql_parser extends Parser { } } - this.state = 470; + this.state = 462; this.match(esql_parser.DECIMAL_LITERAL); } } @@ -2520,17 +2488,17 @@ export class esql_parser extends Parser { // @RuleVersion(0) public integerValue(): IntegerValueContext { let _localctx: IntegerValueContext = new IntegerValueContext(this._ctx, this.state); - this.enterRule(_localctx, 82, esql_parser.RULE_integerValue); + this.enterRule(_localctx, 80, esql_parser.RULE_integerValue); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 473; + this.state = 465; this._errHandler.sync(this); _la = this._input.LA(1); if (_la === esql_parser.PLUS || _la === esql_parser.MINUS) { { - this.state = 472; + this.state = 464; _la = this._input.LA(1); if (!(_la === esql_parser.PLUS || _la === esql_parser.MINUS)) { this._errHandler.recoverInline(this); @@ -2545,7 +2513,7 @@ export class esql_parser extends Parser { } } - this.state = 475; + this.state = 467; this.match(esql_parser.INTEGER_LITERAL); } } @@ -2566,11 +2534,11 @@ export class esql_parser extends Parser { // @RuleVersion(0) public string(): StringContext { let _localctx: StringContext = new StringContext(this._ctx, this.state); - this.enterRule(_localctx, 84, esql_parser.RULE_string); + this.enterRule(_localctx, 82, esql_parser.RULE_string); try { this.enterOuterAlt(_localctx, 1); { - this.state = 477; + this.state = 469; this.match(esql_parser.STRING); } } @@ -2591,12 +2559,12 @@ export class esql_parser extends Parser { // @RuleVersion(0) public comparisonOperator(): ComparisonOperatorContext { let _localctx: ComparisonOperatorContext = new ComparisonOperatorContext(this._ctx, this.state); - this.enterRule(_localctx, 86, esql_parser.RULE_comparisonOperator); + this.enterRule(_localctx, 84, esql_parser.RULE_comparisonOperator); let _la: number; try { this.enterOuterAlt(_localctx, 1); { - this.state = 479; + this.state = 471; _la = this._input.LA(1); if (!(((((_la - 52)) & ~0x1F) === 0 && ((1 << (_la - 52)) & ((1 << (esql_parser.EQ - 52)) | (1 << (esql_parser.NEQ - 52)) | (1 << (esql_parser.LT - 52)) | (1 << (esql_parser.LTE - 52)) | (1 << (esql_parser.GT - 52)) | (1 << (esql_parser.GTE - 52)))) !== 0))) { this._errHandler.recoverInline(this); @@ -2627,13 +2595,13 @@ export class esql_parser extends Parser { // @RuleVersion(0) public explainCommand(): ExplainCommandContext { let _localctx: ExplainCommandContext = new ExplainCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 88, esql_parser.RULE_explainCommand); + this.enterRule(_localctx, 86, esql_parser.RULE_explainCommand); try { this.enterOuterAlt(_localctx, 1); { - this.state = 481; + this.state = 473; this.match(esql_parser.EXPLAIN); - this.state = 482; + this.state = 474; this.subqueryExpression(); } } @@ -2654,15 +2622,15 @@ export class esql_parser extends Parser { // @RuleVersion(0) public subqueryExpression(): SubqueryExpressionContext { let _localctx: SubqueryExpressionContext = new SubqueryExpressionContext(this._ctx, this.state); - this.enterRule(_localctx, 90, esql_parser.RULE_subqueryExpression); + this.enterRule(_localctx, 88, esql_parser.RULE_subqueryExpression); try { this.enterOuterAlt(_localctx, 1); { - this.state = 484; + this.state = 476; this.match(esql_parser.OPENING_BRACKET); - this.state = 485; + this.state = 477; this.query(0); - this.state = 486; + this.state = 478; this.match(esql_parser.CLOSING_BRACKET); } } @@ -2683,18 +2651,18 @@ export class esql_parser extends Parser { // @RuleVersion(0) public showCommand(): ShowCommandContext { let _localctx: ShowCommandContext = new ShowCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 92, esql_parser.RULE_showCommand); + this.enterRule(_localctx, 90, esql_parser.RULE_showCommand); try { - this.state = 492; + this.state = 484; this._errHandler.sync(this); - switch ( this.interpreter.adaptivePredict(this._input, 47, this._ctx) ) { + switch ( this.interpreter.adaptivePredict(this._input, 46, this._ctx) ) { case 1: _localctx = new ShowInfoContext(_localctx); this.enterOuterAlt(_localctx, 1); { - this.state = 488; + this.state = 480; this.match(esql_parser.SHOW); - this.state = 489; + this.state = 481; this.match(esql_parser.INFO); } break; @@ -2703,9 +2671,9 @@ export class esql_parser extends Parser { _localctx = new ShowFunctionsContext(_localctx); this.enterOuterAlt(_localctx, 2); { - this.state = 490; + this.state = 482; this.match(esql_parser.SHOW); - this.state = 491; + this.state = 483; this.match(esql_parser.FUNCTIONS); } break; @@ -2728,51 +2696,66 @@ export class esql_parser extends Parser { // @RuleVersion(0) public enrichCommand(): EnrichCommandContext { let _localctx: EnrichCommandContext = new EnrichCommandContext(this._ctx, this.state); - this.enterRule(_localctx, 94, esql_parser.RULE_enrichCommand); + this.enterRule(_localctx, 92, esql_parser.RULE_enrichCommand); + let _la: number; try { let _alt: number; this.enterOuterAlt(_localctx, 1); { - this.state = 494; + this.state = 486; this.match(esql_parser.ENRICH); - this.state = 495; - _localctx._policyName = this.fromIdentifier(); - this.state = 498; + this.state = 490; + this._errHandler.sync(this); + _la = this._input.LA(1); + while (_la === esql_parser.OPENING_BRACKET) { + { + { + this.state = 487; + this.setting(); + } + } + this.state = 492; + this._errHandler.sync(this); + _la = this._input.LA(1); + } + this.state = 493; + _localctx._policyName = this.match(esql_parser.ENRICH_POLICY_NAME); + this.state = 496; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 48, this._ctx) ) { case 1: { - this.state = 496; + this.state = 494; this.match(esql_parser.ON); - this.state = 497; + this.state = 495; _localctx._matchField = this.qualifiedNamePattern(); } break; } - this.state = 509; + this.state = 507; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 50, this._ctx) ) { case 1: { - this.state = 500; + this.state = 498; this.match(esql_parser.WITH); - this.state = 501; + this.state = 499; this.enrichWithClause(); - this.state = 506; + this.state = 504; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 49, this._ctx); while (_alt !== 2 && _alt !== ATN.INVALID_ALT_NUMBER) { if (_alt === 1) { { { - this.state = 502; + this.state = 500; this.match(esql_parser.COMMA); - this.state = 503; + this.state = 501; this.enrichWithClause(); } } } - this.state = 508; + this.state = 506; this._errHandler.sync(this); _alt = this.interpreter.adaptivePredict(this._input, 49, this._ctx); } @@ -2798,23 +2781,23 @@ export class esql_parser extends Parser { // @RuleVersion(0) public enrichWithClause(): EnrichWithClauseContext { let _localctx: EnrichWithClauseContext = new EnrichWithClauseContext(this._ctx, this.state); - this.enterRule(_localctx, 96, esql_parser.RULE_enrichWithClause); + this.enterRule(_localctx, 94, esql_parser.RULE_enrichWithClause); try { this.enterOuterAlt(_localctx, 1); { - this.state = 514; + this.state = 512; this._errHandler.sync(this); switch ( this.interpreter.adaptivePredict(this._input, 51, this._ctx) ) { case 1: { - this.state = 511; + this.state = 509; _localctx._newName = this.qualifiedNamePattern(); - this.state = 512; + this.state = 510; this.match(esql_parser.ASSIGN); } break; } - this.state = 516; + this.state = 514; _localctx._enrichField = this.qualifiedNamePattern(); } } @@ -2832,6 +2815,39 @@ export class esql_parser extends Parser { } return _localctx; } + // @RuleVersion(0) + public setting(): SettingContext { + let _localctx: SettingContext = new SettingContext(this._ctx, this.state); + this.enterRule(_localctx, 96, esql_parser.RULE_setting); + try { + this.enterOuterAlt(_localctx, 1); + { + this.state = 516; + this.match(esql_parser.OPENING_BRACKET); + this.state = 517; + _localctx._name = this.match(esql_parser.SETTING); + this.state = 518; + this.match(esql_parser.COLON); + this.state = 519; + _localctx._value = this.match(esql_parser.SETTING); + this.state = 520; + this.match(esql_parser.CLOSING_BRACKET); + } + } + 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) { @@ -2875,7 +2891,7 @@ export class esql_parser extends Parser { } public static readonly _serializedATN: string = - "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03d\u0209\x04\x02" + + "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x03j\u020D\x04\x02" + "\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06\x04\x07" + "\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r\t\r\x04" + "\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t\x12\x04" + @@ -2905,227 +2921,229 @@ export class esql_parser extends Parser { "\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x07\x11\u0117\n\x11\f\x11\x0E" + "\x11\u011A\v\x11\x03\x11\x03\x11\x03\x12\x03\x12\x03\x12\x03\x13\x03\x13" + "\x05\x13\u0123\n\x13\x03\x13\x03\x13\x05\x13\u0127\n\x13\x03\x14\x03\x14" + - "\x03\x14\x03\x14\x05\x14\u012D\n\x14\x03\x15\x03\x15\x03\x15\x07\x15\u0132" + - "\n\x15\f\x15\x0E\x15\u0135\v\x15\x03\x16\x03\x16\x03\x17\x03\x17\x03\x17" + - "\x07\x17\u013C\n\x17\f\x17\x0E\x17\u013F\v\x17\x03\x18\x03\x18\x03\x18" + - "\x07\x18\u0144\n\x18\f\x18\x0E\x18\u0147\v\x18\x03\x19\x03\x19\x03\x1A" + - "\x03\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B" + - "\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x07\x1B\u015A\n\x1B\f\x1B\x0E" + - "\x1B\u015D\v\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B\x07\x1B" + - "\u0165\n\x1B\f\x1B\x0E\x1B\u0168\v\x1B\x03\x1B\x03\x1B\x03\x1B\x03\x1B" + - "\x03\x1B\x03\x1B\x07\x1B\u0170\n\x1B\f\x1B\x0E\x1B\u0173\v\x1B\x03\x1B" + - "\x03\x1B\x05\x1B\u0177\n\x1B\x03\x1C\x03\x1C\x03\x1C\x03\x1D\x03\x1D\x03" + - "\x1D\x03\x1D\x07\x1D\u0180\n\x1D\f\x1D\x0E\x1D\u0183\v\x1D\x03\x1E\x03" + - "\x1E\x05\x1E\u0187\n\x1E\x03\x1E\x03\x1E\x05\x1E\u018B\n\x1E\x03\x1F\x03" + - "\x1F\x03\x1F\x03\x1F\x07\x1F\u0191\n\x1F\f\x1F\x0E\x1F\u0194\v\x1F\x03" + - "\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F\u019A\n\x1F\f\x1F\x0E\x1F\u019D\v" + - "\x1F\x05\x1F\u019F\n\x1F\x03 \x03 \x03 \x03 \x07 \u01A5\n \f \x0E \u01A8" + - "\v \x03!\x03!\x03!\x03!\x07!\u01AE\n!\f!\x0E!\u01B1\v!\x03\"\x03\"\x03" + - "\"\x03\"\x03#\x03#\x03#\x03#\x05#\u01BB\n#\x03$\x03$\x03$\x03$\x03%\x03" + - "%\x03%\x03&\x03&\x03&\x07&\u01C7\n&\f&\x0E&\u01CA\v&\x03\'\x03\'\x03\'" + - "\x03\'\x03(\x03(\x03)\x03)\x05)\u01D4\n)\x03*\x05*\u01D7\n*\x03*\x03*" + - "\x03+\x05+\u01DC\n+\x03+\x03+\x03,\x03,\x03-\x03-\x03.\x03.\x03.\x03/" + - "\x03/\x03/\x03/\x030\x030\x030\x030\x050\u01EF\n0\x031\x031\x031\x031" + - "\x051\u01F5\n1\x031\x031\x031\x031\x071\u01FB\n1\f1\x0E1\u01FE\v1\x05" + - "1\u0200\n1\x032\x032\x032\x052\u0205\n2\x032\x032\x032\x02\x02\x05\x04" + - "\f\x123\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02\x0E\x02\x10\x02\x12" + - "\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02 \x02\"\x02$\x02&" + - "\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02<\x02>\x02@\x02" + - "B\x02D\x02F\x02H\x02J\x02L\x02N\x02P\x02R\x02T\x02V\x02X\x02Z\x02\\\x02" + - "^\x02`\x02b\x02\x02\v\x03\x02<=\x03\x02>@\x04\x02DDII\x03\x02CD\x04\x02" + - "DDMM\x04\x02\"\"%%\x03\x02()\x04\x02\'\'55\x03\x026;\x02\u0226\x02d\x03" + - "\x02\x02\x02\x04g\x03\x02\x02\x02\x06v\x03\x02\x02\x02\b\x85\x03\x02\x02" + - "\x02\n\x87\x03\x02\x02\x02\f\xA6\x03\x02\x02\x02\x0E\xC1\x03\x02\x02\x02" + - "\x10\xC8\x03\x02\x02\x02\x12\xCE\x03\x02\x02\x02\x14\xE2\x03\x02\x02\x02" + - "\x16\xE4\x03\x02\x02\x02\x18\xF3\x03\x02\x02\x02\x1A\xF6\x03\x02\x02\x02" + - "\x1C\u0103\x03\x02\x02\x02\x1E\u0105\x03\x02\x02\x02 \u0111\x03\x02\x02" + - "\x02\"\u011D\x03\x02\x02\x02$\u0120\x03\x02\x02\x02&\u0128\x03\x02\x02" + - "\x02(\u012E\x03\x02\x02\x02*\u0136\x03\x02\x02\x02,\u0138\x03\x02\x02" + - "\x02.\u0140\x03\x02\x02\x020\u0148\x03\x02\x02\x022\u014A\x03\x02\x02" + - "\x024\u0176\x03\x02\x02\x026\u0178\x03\x02\x02\x028\u017B\x03\x02\x02" + - "\x02:\u0184\x03\x02\x02\x02<\u019E\x03\x02\x02\x02>\u01A0\x03\x02\x02" + - "\x02@\u01A9\x03\x02\x02\x02B\u01B2\x03\x02\x02\x02D\u01B6\x03\x02\x02" + - "\x02F\u01BC\x03\x02\x02\x02H\u01C0\x03\x02\x02\x02J\u01C3\x03\x02\x02" + - "\x02L\u01CB\x03\x02\x02\x02N\u01CF\x03\x02\x02\x02P\u01D3\x03\x02\x02" + - "\x02R\u01D6\x03\x02\x02\x02T\u01DB\x03\x02\x02\x02V\u01DF\x03\x02\x02" + - "\x02X\u01E1\x03\x02\x02\x02Z\u01E3\x03\x02\x02\x02\\\u01E6\x03\x02\x02" + - "\x02^\u01EE\x03\x02\x02\x02`\u01F0\x03\x02\x02\x02b\u0204\x03\x02\x02" + - "\x02de\x05\x04\x03\x02ef\x07\x02\x02\x03f\x03\x03\x02\x02\x02gh\b\x03" + - "\x01\x02hi\x05\x06\x04\x02io\x03\x02\x02\x02jk\f\x03\x02\x02kl\x07\x1C" + - "\x02\x02ln\x05\b\x05\x02mj\x03\x02\x02\x02nq\x03\x02\x02\x02om\x03\x02" + - "\x02\x02op\x03\x02\x02\x02p\x05\x03\x02\x02\x02qo\x03\x02\x02\x02rw\x05" + - "Z.\x02sw\x05\x1E\x10\x02tw\x05\x18\r\x02uw\x05^0\x02vr\x03\x02\x02\x02" + - "vs\x03\x02\x02\x02vt\x03\x02\x02\x02vu\x03\x02\x02\x02w\x07\x03\x02\x02" + - "\x02x\x86\x05\"\x12\x02y\x86\x05&\x14\x02z\x86\x056\x1C\x02{\x86\x05<" + - "\x1F\x02|\x86\x058\x1D\x02}\x86\x05$\x13\x02~\x86\x05\n\x06\x02\x7F\x86" + - "\x05> \x02\x80\x86\x05@!\x02\x81\x86\x05D#\x02\x82\x86\x05F$\x02\x83\x86" + - "\x05`1\x02\x84\x86\x05H%\x02\x85x\x03\x02\x02\x02\x85y\x03\x02\x02\x02" + - "\x85z\x03\x02\x02\x02\x85{\x03\x02\x02\x02\x85|\x03\x02\x02\x02\x85}\x03" + - "\x02\x02\x02\x85~\x03\x02\x02\x02\x85\x7F\x03\x02\x02\x02\x85\x80\x03" + - "\x02\x02\x02\x85\x81\x03\x02\x02\x02\x85\x82\x03\x02\x02\x02\x85\x83\x03" + - "\x02\x02\x02\x85\x84\x03\x02\x02\x02\x86\t\x03\x02\x02\x02\x87\x88\x07" + - "\x14\x02\x02\x88\x89\x05\f\x07\x02\x89\v\x03\x02\x02\x02\x8A\x8B\b\x07" + - "\x01\x02\x8B\x8C\x07.\x02\x02\x8C\xA7\x05\f\x07\t\x8D\xA7\x05\x10\t\x02" + - "\x8E\xA7\x05\x0E\b\x02\x8F\x91\x05\x10\t\x02\x90\x92\x07.\x02\x02\x91" + - "\x90\x03\x02\x02\x02\x91\x92\x03\x02\x02\x02\x92\x93\x03\x02\x02\x02\x93" + - "\x94\x07+\x02\x02\x94\x95\x07*\x02\x02\x95\x9A\x05\x10\t\x02\x96\x97\x07" + - "$\x02\x02\x97\x99\x05\x10\t\x02\x98\x96\x03\x02\x02\x02\x99\x9C\x03\x02" + - "\x02\x02\x9A\x98\x03\x02\x02\x02\x9A\x9B\x03\x02\x02\x02\x9B\x9D\x03\x02" + - "\x02\x02\x9C\x9A\x03\x02\x02\x02\x9D\x9E\x074\x02\x02\x9E\xA7\x03\x02" + - "\x02\x02\x9F\xA0\x05\x10\t\x02\xA0\xA2\x07,\x02\x02\xA1\xA3\x07.\x02\x02" + - "\xA2\xA1\x03\x02\x02\x02\xA2\xA3\x03\x02\x02\x02\xA3\xA4\x03\x02\x02\x02" + - "\xA4\xA5\x07/\x02\x02\xA5\xA7\x03\x02\x02\x02\xA6\x8A\x03\x02\x02\x02" + - "\xA6\x8D\x03\x02\x02\x02\xA6\x8E\x03\x02\x02\x02\xA6\x8F\x03\x02\x02\x02" + - "\xA6\x9F\x03\x02\x02\x02\xA7\xB0\x03\x02\x02\x02\xA8\xA9\f\x06\x02\x02" + - "\xA9\xAA\x07!\x02\x02\xAA\xAF\x05\f\x07\x07\xAB\xAC\f\x05\x02\x02\xAC" + - "\xAD\x071\x02\x02\xAD\xAF\x05\f\x07\x06\xAE\xA8\x03\x02\x02\x02\xAE\xAB" + - "\x03\x02\x02\x02\xAF\xB2\x03\x02\x02\x02\xB0\xAE\x03\x02\x02\x02\xB0\xB1" + - "\x03\x02\x02\x02\xB1\r\x03\x02\x02\x02\xB2\xB0\x03\x02\x02\x02\xB3\xB5" + - "\x05\x10\t\x02\xB4\xB6\x07.\x02\x02\xB5\xB4\x03\x02\x02\x02\xB5\xB6\x03" + - "\x02\x02\x02\xB6\xB7\x03\x02\x02\x02\xB7\xB8\x07-\x02\x02\xB8\xB9\x05" + - "V,\x02\xB9\xC2\x03\x02\x02\x02\xBA\xBC\x05\x10\t\x02\xBB\xBD\x07.\x02" + - "\x02\xBC\xBB\x03\x02\x02\x02\xBC\xBD\x03\x02\x02\x02\xBD\xBE\x03\x02\x02" + - "\x02\xBE\xBF\x073\x02\x02\xBF\xC0\x05V,\x02\xC0\xC2\x03\x02\x02\x02\xC1" + - "\xB3\x03\x02\x02\x02\xC1\xBA\x03\x02\x02\x02\xC2\x0F\x03\x02\x02\x02\xC3" + - "\xC9\x05\x12\n\x02\xC4\xC5\x05\x12\n\x02\xC5\xC6\x05X-\x02\xC6\xC7\x05" + - "\x12\n\x02\xC7\xC9\x03\x02\x02\x02\xC8\xC3\x03\x02\x02\x02\xC8\xC4\x03" + - "\x02\x02\x02\xC9\x11\x03\x02\x02\x02\xCA\xCB\b\n\x01\x02\xCB\xCF\x05\x14" + - "\v\x02\xCC\xCD\t\x02\x02\x02\xCD\xCF\x05\x12\n\x05\xCE\xCA\x03\x02\x02" + - "\x02\xCE\xCC\x03\x02\x02\x02\xCF\xD8\x03\x02\x02\x02\xD0\xD1\f\x04\x02" + - "\x02\xD1\xD2\t\x03\x02\x02\xD2\xD7\x05\x12\n\x05\xD3\xD4\f\x03\x02\x02" + - "\xD4\xD5\t\x02\x02\x02\xD5\xD7\x05\x12\n\x04\xD6\xD0\x03\x02\x02\x02\xD6" + - "\xD3\x03\x02\x02\x02\xD7\xDA\x03\x02\x02\x02\xD8\xD6\x03\x02\x02\x02\xD8" + - "\xD9\x03\x02\x02\x02\xD9\x13\x03\x02\x02\x02\xDA\xD8\x03\x02\x02\x02\xDB" + - "\xE3\x054\x1B\x02\xDC\xE3\x05,\x17\x02\xDD\xE3\x05\x16\f\x02\xDE\xDF\x07" + - "*\x02\x02\xDF\xE0\x05\f\x07\x02\xE0\xE1\x074\x02\x02\xE1\xE3\x03\x02\x02" + - "\x02\xE2\xDB\x03\x02\x02\x02\xE2\xDC\x03\x02\x02\x02\xE2\xDD\x03\x02\x02" + - "\x02\xE2\xDE\x03\x02\x02\x02\xE3\x15\x03\x02\x02\x02\xE4\xE5\x050\x19" + - "\x02\xE5\xEF\x07*\x02\x02\xE6\xF0\x07>\x02\x02\xE7\xEC\x05\f\x07\x02\xE8" + - "\xE9\x07$\x02\x02\xE9\xEB\x05\f\x07\x02\xEA\xE8\x03\x02\x02\x02\xEB\xEE" + - "\x03\x02\x02\x02\xEC\xEA\x03\x02\x02\x02\xEC\xED\x03\x02\x02\x02\xED\xF0" + - "\x03\x02\x02\x02\xEE\xEC\x03\x02\x02\x02\xEF\xE6\x03\x02\x02\x02\xEF\xE7" + - "\x03\x02\x02\x02\xEF\xF0\x03\x02\x02\x02\xF0\xF1\x03\x02\x02\x02\xF1\xF2" + - "\x074\x02\x02\xF2\x17\x03\x02\x02\x02\xF3\xF4\x07\x10\x02\x02\xF4\xF5" + - "\x05\x1A\x0E\x02\xF5\x19\x03\x02\x02\x02\xF6\xFB\x05\x1C\x0F\x02\xF7\xF8" + - "\x07$\x02\x02\xF8\xFA\x05\x1C\x0F\x02\xF9\xF7\x03\x02\x02\x02\xFA\xFD" + - "\x03\x02\x02\x02\xFB\xF9\x03\x02\x02\x02\xFB\xFC\x03\x02\x02\x02\xFC\x1B" + - "\x03\x02\x02\x02\xFD\xFB\x03\x02\x02\x02\xFE\u0104\x05\f\x07\x02\xFF\u0100" + - "\x05,\x17\x02\u0100\u0101\x07#\x02\x02\u0101\u0102\x05\f\x07\x02\u0102" + - "\u0104\x03\x02\x02\x02\u0103\xFE\x03\x02\x02\x02\u0103\xFF\x03\x02\x02" + - "\x02\u0104\x1D\x03\x02\x02\x02\u0105\u0106\x07\b\x02\x02\u0106\u010B\x05" + - "*\x16\x02\u0107\u0108\x07$\x02\x02\u0108\u010A\x05*\x16\x02\u0109\u0107" + - "\x03\x02\x02\x02\u010A\u010D\x03\x02\x02\x02\u010B\u0109\x03\x02\x02\x02" + - "\u010B\u010C\x03\x02\x02\x02\u010C\u010F\x03\x02\x02\x02\u010D\u010B\x03" + - "\x02\x02\x02\u010E\u0110\x05 \x11\x02\u010F\u010E\x03\x02\x02\x02\u010F" + - "\u0110\x03\x02\x02\x02\u0110\x1F\x03\x02\x02\x02\u0111\u0112\x07A\x02" + - "\x02\u0112\u0113\x07H\x02\x02\u0113\u0118\x05*\x16\x02\u0114\u0115\x07" + - "$\x02\x02\u0115\u0117\x05*\x16\x02\u0116\u0114\x03\x02\x02\x02\u0117\u011A" + - "\x03\x02\x02\x02\u0118\u0116\x03\x02\x02\x02\u0118\u0119\x03\x02\x02\x02" + - "\u0119\u011B\x03\x02\x02\x02\u011A\u0118\x03\x02\x02\x02\u011B\u011C\x07" + - "B\x02\x02\u011C!\x03\x02\x02\x02\u011D\u011E\x07\x06\x02\x02\u011E\u011F" + - "\x05\x1A\x0E\x02\u011F#\x03\x02\x02\x02\u0120\u0122\x07\x13\x02\x02\u0121" + - "\u0123\x05\x1A\x0E\x02\u0122\u0121\x03\x02\x02\x02\u0122\u0123\x03\x02" + - "\x02\x02\u0123\u0126\x03\x02\x02\x02\u0124\u0125\x07 \x02\x02\u0125\u0127" + - "\x05(\x15\x02\u0126\u0124\x03\x02\x02\x02\u0126\u0127\x03\x02\x02\x02" + - "\u0127%\x03\x02\x02\x02\u0128\u0129\x07\n\x02\x02\u0129\u012C\x05\x1A" + - "\x0E\x02\u012A\u012B\x07 \x02\x02\u012B\u012D\x05(\x15\x02\u012C\u012A" + - "\x03\x02\x02\x02\u012C\u012D\x03\x02\x02\x02\u012D\'\x03\x02\x02\x02\u012E" + - "\u0133\x05,\x17\x02\u012F\u0130\x07$\x02\x02\u0130\u0132\x05,\x17\x02" + - "\u0131\u012F\x03\x02\x02\x02\u0132\u0135\x03\x02\x02\x02\u0133\u0131\x03" + - "\x02\x02\x02\u0133\u0134\x03\x02\x02\x02\u0134)\x03\x02\x02\x02\u0135" + - "\u0133\x03\x02\x02\x02\u0136\u0137\t\x04\x02\x02\u0137+\x03\x02\x02\x02" + - "\u0138\u013D\x050\x19\x02\u0139\u013A\x07&\x02\x02\u013A\u013C\x050\x19" + - "\x02\u013B\u0139\x03\x02\x02\x02\u013C\u013F\x03\x02\x02\x02\u013D\u013B" + - "\x03\x02\x02\x02\u013D\u013E\x03\x02\x02\x02\u013E-\x03\x02\x02\x02\u013F" + - "\u013D\x03\x02\x02\x02\u0140\u0145\x052\x1A\x02\u0141\u0142\x07&\x02\x02" + - "\u0142\u0144\x052\x1A\x02\u0143\u0141\x03\x02\x02\x02\u0144\u0147\x03" + - "\x02\x02\x02\u0145\u0143\x03\x02\x02\x02\u0145\u0146\x03\x02\x02\x02\u0146" + - "/\x03\x02\x02\x02\u0147\u0145\x03\x02\x02\x02\u0148\u0149\t\x05\x02\x02" + - "\u01491\x03\x02\x02\x02\u014A\u014B\t\x06\x02\x02\u014B3\x03\x02\x02\x02" + - "\u014C\u0177\x07/\x02\x02\u014D\u014E\x05T+\x02\u014E\u014F\x07C\x02\x02" + - "\u014F\u0177\x03\x02\x02\x02\u0150\u0177\x05R*\x02\u0151\u0177\x05T+\x02" + - "\u0152\u0177\x05N(\x02\u0153\u0177\x072\x02\x02\u0154\u0177\x05V,\x02" + - "\u0155\u0156\x07A\x02\x02\u0156\u015B\x05P)\x02\u0157\u0158\x07$\x02\x02" + - "\u0158\u015A\x05P)\x02\u0159\u0157\x03\x02\x02\x02\u015A\u015D\x03\x02" + - "\x02\x02\u015B\u0159\x03\x02\x02\x02\u015B\u015C\x03\x02\x02\x02\u015C" + - "\u015E\x03\x02\x02\x02\u015D\u015B\x03\x02\x02\x02\u015E\u015F\x07B\x02" + - "\x02\u015F\u0177\x03\x02\x02\x02\u0160\u0161\x07A\x02\x02\u0161\u0166" + - "\x05N(\x02\u0162\u0163\x07$\x02\x02\u0163\u0165\x05N(\x02\u0164\u0162" + - "\x03\x02\x02\x02\u0165\u0168\x03\x02\x02\x02\u0166\u0164\x03\x02\x02\x02" + - "\u0166\u0167\x03\x02\x02\x02\u0167\u0169\x03\x02\x02\x02\u0168\u0166\x03" + - "\x02\x02\x02\u0169\u016A\x07B\x02\x02\u016A\u0177\x03\x02\x02\x02\u016B" + - "\u016C\x07A\x02\x02\u016C\u0171\x05V,\x02\u016D\u016E\x07$\x02\x02\u016E" + - "\u0170\x05V,\x02\u016F\u016D\x03\x02\x02\x02\u0170\u0173\x03\x02\x02\x02" + - "\u0171\u016F\x03\x02\x02\x02\u0171\u0172\x03\x02\x02\x02\u0172\u0174\x03" + - "\x02\x02\x02\u0173\u0171\x03\x02\x02\x02\u0174\u0175\x07B\x02\x02\u0175" + - "\u0177\x03\x02\x02\x02\u0176\u014C\x03\x02\x02\x02\u0176\u014D\x03\x02" + - "\x02\x02\u0176\u0150\x03\x02\x02\x02\u0176\u0151\x03\x02\x02\x02\u0176" + - "\u0152\x03\x02\x02\x02\u0176\u0153\x03\x02\x02\x02\u0176\u0154\x03\x02" + - "\x02\x02\u0176\u0155\x03\x02\x02\x02\u0176\u0160\x03\x02\x02\x02\u0176" + - "\u016B\x03\x02\x02\x02\u01775\x03\x02\x02\x02\u0178\u0179\x07\f\x02\x02" + - "\u0179\u017A\x07\x1E\x02\x02\u017A7\x03\x02\x02\x02\u017B\u017C\x07\x12" + - "\x02\x02\u017C\u0181\x05:\x1E\x02\u017D\u017E\x07$\x02\x02\u017E\u0180" + - "\x05:\x1E\x02\u017F\u017D\x03\x02\x02\x02\u0180\u0183\x03\x02\x02\x02" + - "\u0181\u017F\x03\x02\x02\x02\u0181\u0182\x03\x02\x02\x02\u01829\x03\x02" + - "\x02\x02\u0183\u0181\x03\x02\x02\x02\u0184\u0186\x05\f\x07\x02\u0185\u0187" + - "\t\x07\x02\x02\u0186\u0185\x03\x02\x02\x02\u0186\u0187\x03\x02\x02\x02" + - "\u0187\u018A\x03\x02\x02\x02\u0188\u0189\x070\x02\x02\u0189\u018B\t\b" + - "\x02\x02\u018A\u0188\x03\x02\x02\x02\u018A\u018B\x03\x02\x02\x02\u018B" + - ";\x03\x02\x02\x02\u018C\u018D\x07\v\x02\x02\u018D\u0192\x05.\x18\x02\u018E" + - "\u018F\x07$\x02\x02\u018F\u0191\x05.\x18\x02\u0190\u018E\x03\x02\x02\x02" + - "\u0191\u0194\x03\x02\x02\x02\u0192\u0190\x03\x02\x02\x02\u0192\u0193\x03" + - "\x02\x02\x02\u0193\u019F\x03\x02\x02\x02\u0194\u0192\x03\x02\x02\x02\u0195" + - "\u0196\x07\x0E\x02\x02\u0196\u019B\x05.\x18\x02\u0197\u0198\x07$\x02\x02" + - "\u0198\u019A\x05.\x18\x02\u0199\u0197\x03\x02\x02\x02\u019A\u019D\x03" + - "\x02\x02\x02\u019B\u0199\x03\x02\x02\x02\u019B\u019C\x03\x02\x02\x02\u019C" + - "\u019F\x03\x02\x02\x02\u019D\u019B\x03\x02\x02\x02\u019E\u018C\x03\x02" + - "\x02\x02\u019E\u0195\x03\x02\x02\x02\u019F=\x03\x02\x02\x02\u01A0\u01A1" + - "\x07\x04\x02\x02\u01A1\u01A6\x05.\x18\x02\u01A2\u01A3\x07$\x02\x02\u01A3" + - "\u01A5\x05.\x18\x02\u01A4\u01A2\x03\x02\x02\x02\u01A5\u01A8\x03\x02\x02" + - "\x02\u01A6\u01A4\x03\x02\x02\x02\u01A6\u01A7\x03\x02\x02\x02\u01A7?\x03" + - "\x02\x02\x02\u01A8\u01A6\x03\x02\x02\x02\u01A9\u01AA\x07\x0F\x02\x02\u01AA" + - "\u01AF\x05B\"\x02\u01AB\u01AC\x07$\x02\x02\u01AC\u01AE\x05B\"\x02\u01AD" + - "\u01AB\x03\x02\x02\x02\u01AE\u01B1\x03\x02\x02\x02\u01AF\u01AD\x03\x02" + - "\x02\x02\u01AF\u01B0\x03\x02\x02\x02\u01B0A\x03\x02\x02\x02\u01B1\u01AF" + - "\x03\x02\x02\x02\u01B2\u01B3\x05.\x18\x02\u01B3\u01B4\x07Q\x02\x02\u01B4" + - "\u01B5\x05.\x18\x02\u01B5C\x03\x02\x02\x02\u01B6\u01B7\x07\x03\x02\x02" + - "\u01B7\u01B8\x05\x14\v\x02\u01B8\u01BA\x05V,\x02\u01B9\u01BB\x05J&\x02" + - "\u01BA\u01B9\x03\x02\x02\x02\u01BA\u01BB\x03\x02\x02\x02\u01BBE\x03\x02" + - "\x02\x02\u01BC\u01BD\x07\t\x02\x02\u01BD\u01BE\x05\x14\v\x02\u01BE\u01BF" + - "\x05V,\x02\u01BFG\x03\x02\x02\x02\u01C0\u01C1\x07\r\x02\x02\u01C1\u01C2" + - "\x05,\x17\x02\u01C2I\x03\x02\x02\x02\u01C3\u01C8\x05L\'\x02\u01C4\u01C5" + - "\x07$\x02\x02\u01C5\u01C7\x05L\'\x02\u01C6\u01C4\x03\x02\x02\x02\u01C7" + - "\u01CA\x03\x02\x02\x02\u01C8\u01C6\x03\x02\x02\x02\u01C8\u01C9\x03\x02" + - "\x02\x02\u01C9K\x03\x02\x02\x02\u01CA\u01C8\x03\x02\x02\x02\u01CB\u01CC" + - "\x050\x19\x02\u01CC\u01CD\x07#\x02\x02\u01CD\u01CE\x054\x1B\x02\u01CE" + - "M\x03\x02\x02\x02\u01CF\u01D0\t\t\x02\x02\u01D0O\x03\x02\x02\x02\u01D1" + - "\u01D4\x05R*\x02\u01D2\u01D4\x05T+\x02\u01D3\u01D1\x03\x02\x02\x02\u01D3" + - "\u01D2\x03\x02\x02\x02\u01D4Q\x03\x02\x02\x02\u01D5\u01D7\t\x02\x02\x02" + - "\u01D6\u01D5\x03\x02\x02\x02\u01D6\u01D7\x03\x02\x02\x02\u01D7\u01D8\x03" + - "\x02\x02\x02\u01D8\u01D9\x07\x1F\x02\x02\u01D9S\x03\x02\x02\x02\u01DA" + - "\u01DC\t\x02\x02\x02\u01DB\u01DA\x03\x02\x02\x02\u01DB\u01DC\x03\x02\x02" + - "\x02\u01DC\u01DD\x03\x02\x02\x02\u01DD\u01DE\x07\x1E\x02\x02\u01DEU\x03" + - "\x02\x02\x02\u01DF\u01E0\x07\x1D\x02\x02\u01E0W\x03\x02\x02\x02\u01E1" + - "\u01E2\t\n\x02\x02\u01E2Y\x03\x02\x02\x02\u01E3\u01E4\x07\x07\x02\x02" + - "\u01E4\u01E5\x05\\/\x02\u01E5[\x03\x02\x02\x02\u01E6\u01E7\x07A\x02\x02" + - "\u01E7\u01E8\x05\x04\x03\x02\u01E8\u01E9\x07B\x02\x02\u01E9]\x03\x02\x02" + - "\x02\u01EA\u01EB\x07\x11\x02\x02\u01EB\u01EF\x07`\x02\x02\u01EC\u01ED" + - "\x07\x11\x02\x02\u01ED\u01EF\x07a\x02\x02\u01EE\u01EA\x03\x02\x02\x02" + - "\u01EE\u01EC\x03\x02\x02\x02\u01EF_\x03\x02\x02\x02\u01F0\u01F1\x07\x05" + - "\x02\x02\u01F1\u01F4\x05*\x16\x02\u01F2\u01F3\x07U\x02\x02\u01F3\u01F5" + - "\x05.\x18\x02\u01F4\u01F2\x03\x02\x02\x02\u01F4\u01F5\x03\x02\x02\x02" + - "\u01F5\u01FF\x03\x02\x02\x02\u01F6\u01F7\x07V\x02\x02\u01F7\u01FC\x05" + - "b2\x02\u01F8\u01F9\x07$\x02\x02\u01F9\u01FB\x05b2\x02\u01FA\u01F8\x03" + - "\x02\x02\x02\u01FB\u01FE\x03\x02\x02\x02\u01FC\u01FA\x03\x02\x02\x02\u01FC" + - "\u01FD\x03\x02\x02\x02\u01FD\u0200\x03\x02\x02\x02\u01FE\u01FC\x03\x02" + - "\x02\x02\u01FF\u01F6\x03\x02\x02\x02\u01FF\u0200\x03\x02\x02\x02\u0200" + - "a\x03\x02\x02\x02\u0201\u0202\x05.\x18\x02\u0202\u0203\x07#\x02\x02\u0203" + - "\u0205\x03\x02\x02\x02\u0204\u0201\x03\x02\x02\x02\u0204\u0205\x03\x02" + - "\x02\x02\u0205\u0206\x03\x02\x02\x02\u0206\u0207\x05.\x18\x02\u0207c\x03" + - "\x02\x02\x026ov\x85\x91\x9A\xA2\xA6\xAE\xB0\xB5\xBC\xC1\xC8\xCE\xD6\xD8" + - "\xE2\xEC\xEF\xFB\u0103\u010B\u010F\u0118\u0122\u0126\u012C\u0133\u013D" + - "\u0145\u015B\u0166\u0171\u0176\u0181\u0186\u018A\u0192\u019B\u019E\u01A6" + - "\u01AF\u01BA\u01C8\u01D3\u01D6\u01DB\u01EE\u01F4\u01FC\u01FF\u0204"; + "\x03\x14\x03\x14\x05\x14\u012D\n\x14\x03\x15\x03\x15\x03\x16\x03\x16\x03" + + "\x16\x07\x16\u0134\n\x16\f\x16\x0E\x16\u0137\v\x16\x03\x17\x03\x17\x03" + + "\x17\x07\x17\u013C\n\x17\f\x17\x0E\x17\u013F\v\x17\x03\x18\x03\x18\x03" + + "\x19\x03\x19\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03" + + "\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x07\x1A\u0152\n\x1A\f\x1A" + + "\x0E\x1A\u0155\v\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x03\x1A\x07" + + "\x1A\u015D\n\x1A\f\x1A\x0E\x1A\u0160\v\x1A\x03\x1A\x03\x1A\x03\x1A\x03" + + "\x1A\x03\x1A\x03\x1A\x07\x1A\u0168\n\x1A\f\x1A\x0E\x1A\u016B\v\x1A\x03" + + "\x1A\x03\x1A\x05\x1A\u016F\n\x1A\x03\x1B\x03\x1B\x03\x1B\x03\x1C\x03\x1C" + + "\x03\x1C\x03\x1C\x07\x1C\u0178\n\x1C\f\x1C\x0E\x1C\u017B\v\x1C\x03\x1D" + + "\x03\x1D\x05\x1D\u017F\n\x1D\x03\x1D\x03\x1D\x05\x1D\u0183\n\x1D\x03\x1E" + + "\x03\x1E\x03\x1E\x03\x1E\x07\x1E\u0189\n\x1E\f\x1E\x0E\x1E\u018C\v\x1E" + + "\x03\x1E\x03\x1E\x03\x1E\x03\x1E\x07\x1E\u0192\n\x1E\f\x1E\x0E\x1E\u0195" + + "\v\x1E\x05\x1E\u0197\n\x1E\x03\x1F\x03\x1F\x03\x1F\x03\x1F\x07\x1F\u019D" + + "\n\x1F\f\x1F\x0E\x1F\u01A0\v\x1F\x03 \x03 \x03 \x03 \x07 \u01A6\n \f " + + "\x0E \u01A9\v \x03!\x03!\x03!\x03!\x03\"\x03\"\x03\"\x03\"\x05\"\u01B3" + + "\n\"\x03#\x03#\x03#\x03#\x03$\x03$\x03$\x03%\x03%\x03%\x07%\u01BF\n%\f" + + "%\x0E%\u01C2\v%\x03&\x03&\x03&\x03&\x03\'\x03\'\x03(\x03(\x05(\u01CC\n" + + "(\x03)\x05)\u01CF\n)\x03)\x03)\x03*\x05*\u01D4\n*\x03*\x03*\x03+\x03+" + + "\x03,\x03,\x03-\x03-\x03-\x03.\x03.\x03.\x03.\x03/\x03/\x03/\x03/\x05" + + "/\u01E7\n/\x030\x030\x070\u01EB\n0\f0\x0E0\u01EE\v0\x030\x030\x030\x05" + + "0\u01F3\n0\x030\x030\x030\x030\x070\u01F9\n0\f0\x0E0\u01FC\v0\x050\u01FE" + + "\n0\x031\x031\x031\x051\u0203\n1\x031\x031\x032\x032\x032\x032\x032\x03" + + "2\x032\x02\x02\x05\x04\f\x123\x02\x02\x04\x02\x06\x02\b\x02\n\x02\f\x02" + + "\x0E\x02\x10\x02\x12\x02\x14\x02\x16\x02\x18\x02\x1A\x02\x1C\x02\x1E\x02" + + " \x02\"\x02$\x02&\x02(\x02*\x02,\x02.\x020\x022\x024\x026\x028\x02:\x02" + + "<\x02>\x02@\x02B\x02D\x02F\x02H\x02J\x02L\x02N\x02P\x02R\x02T\x02V\x02" + + "X\x02Z\x02\\\x02^\x02`\x02b\x02\x02\v\x03\x02<=\x03\x02>@\x04\x02DDII" + + "\x03\x02CD\x04\x02DDMM\x04\x02\"\"%%\x03\x02()\x04\x02\'\'55\x03\x026" + + ";\x02\u022A\x02d\x03\x02\x02\x02\x04g\x03\x02\x02\x02\x06v\x03\x02\x02" + + "\x02\b\x85\x03\x02\x02\x02\n\x87\x03\x02\x02\x02\f\xA6\x03\x02\x02\x02" + + "\x0E\xC1\x03\x02\x02\x02\x10\xC8\x03\x02\x02\x02\x12\xCE\x03\x02\x02\x02" + + "\x14\xE2\x03\x02\x02\x02\x16\xE4\x03\x02\x02\x02\x18\xF3\x03\x02\x02\x02" + + "\x1A\xF6\x03\x02\x02\x02\x1C\u0103\x03\x02\x02\x02\x1E\u0105\x03\x02\x02" + + "\x02 \u0111\x03\x02\x02\x02\"\u011D\x03\x02\x02\x02$\u0120\x03\x02\x02" + + "\x02&\u0128\x03\x02\x02\x02(\u012E\x03\x02\x02\x02*\u0130\x03\x02\x02" + + "\x02,\u0138\x03\x02\x02\x02.\u0140\x03\x02\x02\x020\u0142\x03\x02\x02" + + "\x022\u016E\x03\x02\x02\x024\u0170\x03\x02\x02\x026\u0173\x03\x02\x02" + + "\x028\u017C\x03\x02\x02\x02:\u0196\x03\x02\x02\x02<\u0198\x03\x02\x02" + + "\x02>\u01A1\x03\x02\x02\x02@\u01AA\x03\x02\x02\x02B\u01AE\x03\x02\x02" + + "\x02D\u01B4\x03\x02\x02\x02F\u01B8\x03\x02\x02\x02H\u01BB\x03\x02\x02" + + "\x02J\u01C3\x03\x02\x02\x02L\u01C7\x03\x02\x02\x02N\u01CB\x03\x02\x02" + + "\x02P\u01CE\x03\x02\x02\x02R\u01D3\x03\x02\x02\x02T\u01D7\x03\x02\x02" + + "\x02V\u01D9\x03\x02\x02\x02X\u01DB\x03\x02\x02\x02Z\u01DE\x03\x02\x02" + + "\x02\\\u01E6\x03\x02\x02\x02^\u01E8\x03\x02\x02\x02`\u0202\x03\x02\x02" + + "\x02b\u0206\x03\x02\x02\x02de\x05\x04\x03\x02ef\x07\x02\x02\x03f\x03\x03" + + "\x02\x02\x02gh\b\x03\x01\x02hi\x05\x06\x04\x02io\x03\x02\x02\x02jk\f\x03" + + "\x02\x02kl\x07\x1C\x02\x02ln\x05\b\x05\x02mj\x03\x02\x02\x02nq\x03\x02" + + "\x02\x02om\x03\x02\x02\x02op\x03\x02\x02\x02p\x05\x03\x02\x02\x02qo\x03" + + "\x02\x02\x02rw\x05X-\x02sw\x05\x1E\x10\x02tw\x05\x18\r\x02uw\x05\\/\x02" + + "vr\x03\x02\x02\x02vs\x03\x02\x02\x02vt\x03\x02\x02\x02vu\x03\x02\x02\x02" + + "w\x07\x03\x02\x02\x02x\x86\x05\"\x12\x02y\x86\x05&\x14\x02z\x86\x054\x1B" + + "\x02{\x86\x05:\x1E\x02|\x86\x056\x1C\x02}\x86\x05$\x13\x02~\x86\x05\n" + + "\x06\x02\x7F\x86\x05<\x1F\x02\x80\x86\x05> \x02\x81\x86\x05B\"\x02\x82" + + "\x86\x05D#\x02\x83\x86\x05^0\x02\x84\x86\x05F$\x02\x85x\x03\x02\x02\x02" + + "\x85y\x03\x02\x02\x02\x85z\x03\x02\x02\x02\x85{\x03\x02\x02\x02\x85|\x03" + + "\x02\x02\x02\x85}\x03\x02\x02\x02\x85~\x03\x02\x02\x02\x85\x7F\x03\x02" + + "\x02\x02\x85\x80\x03\x02\x02\x02\x85\x81\x03\x02\x02\x02\x85\x82\x03\x02" + + "\x02\x02\x85\x83\x03\x02\x02\x02\x85\x84\x03\x02\x02\x02\x86\t\x03\x02" + + "\x02\x02\x87\x88\x07\x14\x02\x02\x88\x89\x05\f\x07\x02\x89\v\x03\x02\x02" + + "\x02\x8A\x8B\b\x07\x01\x02\x8B\x8C\x07.\x02\x02\x8C\xA7\x05\f\x07\t\x8D" + + "\xA7\x05\x10\t\x02\x8E\xA7\x05\x0E\b\x02\x8F\x91\x05\x10\t\x02\x90\x92" + + "\x07.\x02\x02\x91\x90\x03\x02\x02\x02\x91\x92\x03\x02\x02\x02\x92\x93" + + "\x03\x02\x02\x02\x93\x94\x07+\x02\x02\x94\x95\x07*\x02\x02\x95\x9A\x05" + + "\x10\t\x02\x96\x97\x07$\x02\x02\x97\x99\x05\x10\t\x02\x98\x96\x03\x02" + + "\x02\x02\x99\x9C\x03\x02\x02\x02\x9A\x98\x03\x02\x02\x02\x9A\x9B\x03\x02" + + "\x02\x02\x9B\x9D\x03\x02\x02\x02\x9C\x9A\x03\x02\x02\x02\x9D\x9E\x074" + + "\x02\x02\x9E\xA7\x03\x02\x02\x02\x9F\xA0\x05\x10\t\x02\xA0\xA2\x07,\x02" + + "\x02\xA1\xA3\x07.\x02\x02\xA2\xA1\x03\x02\x02\x02\xA2\xA3\x03\x02\x02" + + "\x02\xA3\xA4\x03\x02\x02\x02\xA4\xA5\x07/\x02\x02\xA5\xA7\x03\x02\x02" + + "\x02\xA6\x8A\x03\x02\x02\x02\xA6\x8D\x03\x02\x02\x02\xA6\x8E\x03\x02\x02" + + "\x02\xA6\x8F\x03\x02\x02\x02\xA6\x9F\x03\x02\x02\x02\xA7\xB0\x03\x02\x02" + + "\x02\xA8\xA9\f\x06\x02\x02\xA9\xAA\x07!\x02\x02\xAA\xAF\x05\f\x07\x07" + + "\xAB\xAC\f\x05\x02\x02\xAC\xAD\x071\x02\x02\xAD\xAF\x05\f\x07\x06\xAE" + + "\xA8\x03\x02\x02\x02\xAE\xAB\x03\x02\x02\x02\xAF\xB2\x03\x02\x02\x02\xB0" + + "\xAE\x03\x02\x02\x02\xB0\xB1\x03\x02\x02\x02\xB1\r\x03\x02\x02\x02\xB2" + + "\xB0\x03\x02\x02\x02\xB3\xB5\x05\x10\t\x02\xB4\xB6\x07.\x02\x02\xB5\xB4" + + "\x03\x02\x02\x02\xB5\xB6\x03\x02\x02\x02\xB6\xB7\x03\x02\x02\x02\xB7\xB8" + + "\x07-\x02\x02\xB8\xB9\x05T+\x02\xB9\xC2\x03\x02\x02\x02\xBA\xBC\x05\x10" + + "\t\x02\xBB\xBD\x07.\x02\x02\xBC\xBB\x03\x02\x02\x02\xBC\xBD\x03\x02\x02" + + "\x02\xBD\xBE\x03\x02\x02\x02\xBE\xBF\x073\x02\x02\xBF\xC0\x05T+\x02\xC0" + + "\xC2\x03\x02\x02\x02\xC1\xB3\x03\x02\x02\x02\xC1\xBA\x03\x02\x02\x02\xC2" + + "\x0F\x03\x02\x02\x02\xC3\xC9\x05\x12\n\x02\xC4\xC5\x05\x12\n\x02\xC5\xC6" + + "\x05V,\x02\xC6\xC7\x05\x12\n\x02\xC7\xC9\x03\x02\x02\x02\xC8\xC3\x03\x02" + + "\x02\x02\xC8\xC4\x03\x02\x02\x02\xC9\x11\x03\x02\x02\x02\xCA\xCB\b\n\x01" + + "\x02\xCB\xCF\x05\x14\v\x02\xCC\xCD\t\x02\x02\x02\xCD\xCF\x05\x12\n\x05" + + "\xCE\xCA\x03\x02\x02\x02\xCE\xCC\x03\x02\x02\x02\xCF\xD8\x03\x02\x02\x02" + + "\xD0\xD1\f\x04\x02\x02\xD1\xD2\t\x03\x02\x02\xD2\xD7\x05\x12\n\x05\xD3" + + "\xD4\f\x03\x02\x02\xD4\xD5\t\x02\x02\x02\xD5\xD7\x05\x12\n\x04\xD6\xD0" + + "\x03\x02\x02\x02\xD6\xD3\x03\x02\x02\x02\xD7\xDA\x03\x02\x02\x02\xD8\xD6" + + "\x03\x02\x02\x02\xD8\xD9\x03\x02\x02\x02\xD9\x13\x03\x02\x02\x02\xDA\xD8" + + "\x03\x02\x02\x02\xDB\xE3\x052\x1A\x02\xDC\xE3\x05*\x16\x02\xDD\xE3\x05" + + "\x16\f\x02\xDE\xDF\x07*\x02\x02\xDF\xE0\x05\f\x07\x02\xE0\xE1\x074\x02" + + "\x02\xE1\xE3\x03\x02\x02\x02\xE2\xDB\x03\x02\x02\x02\xE2\xDC\x03\x02\x02" + + "\x02\xE2\xDD\x03\x02\x02\x02\xE2\xDE\x03\x02\x02\x02\xE3\x15\x03\x02\x02" + + "\x02\xE4\xE5\x05.\x18\x02\xE5\xEF\x07*\x02\x02\xE6\xF0\x07>\x02\x02\xE7" + + "\xEC\x05\f\x07\x02\xE8\xE9\x07$\x02\x02\xE9\xEB\x05\f\x07\x02\xEA\xE8" + + "\x03\x02\x02\x02\xEB\xEE\x03\x02\x02\x02\xEC\xEA\x03\x02\x02\x02\xEC\xED" + + "\x03\x02\x02\x02\xED\xF0\x03\x02\x02\x02\xEE\xEC\x03\x02\x02\x02\xEF\xE6" + + "\x03\x02\x02\x02\xEF\xE7\x03\x02\x02\x02\xEF\xF0\x03\x02\x02\x02\xF0\xF1" + + "\x03\x02\x02\x02\xF1\xF2\x074\x02\x02\xF2\x17\x03\x02\x02\x02\xF3\xF4" + + "\x07\x10\x02\x02\xF4\xF5\x05\x1A\x0E\x02\xF5\x19\x03\x02\x02\x02\xF6\xFB" + + "\x05\x1C\x0F\x02\xF7\xF8\x07$\x02\x02\xF8\xFA\x05\x1C\x0F\x02\xF9\xF7" + + "\x03\x02\x02\x02\xFA\xFD\x03\x02\x02\x02\xFB\xF9\x03\x02\x02\x02\xFB\xFC" + + "\x03\x02\x02\x02\xFC\x1B\x03\x02\x02\x02\xFD\xFB\x03\x02\x02\x02\xFE\u0104" + + "\x05\f\x07\x02\xFF\u0100\x05*\x16\x02\u0100\u0101\x07#\x02\x02\u0101\u0102" + + "\x05\f\x07\x02\u0102\u0104\x03\x02\x02\x02\u0103\xFE\x03\x02\x02\x02\u0103" + + "\xFF\x03\x02\x02\x02\u0104\x1D\x03\x02\x02\x02\u0105\u0106\x07\b\x02\x02" + + "\u0106\u010B\x05(\x15\x02\u0107\u0108\x07$\x02\x02\u0108\u010A\x05(\x15" + + "\x02\u0109\u0107\x03\x02\x02\x02\u010A\u010D\x03\x02\x02\x02\u010B\u0109" + + "\x03\x02\x02\x02\u010B\u010C\x03\x02\x02\x02\u010C\u010F\x03\x02\x02\x02" + + "\u010D\u010B\x03\x02\x02\x02\u010E\u0110\x05 \x11\x02\u010F\u010E\x03" + + "\x02\x02\x02\u010F\u0110\x03\x02\x02\x02\u0110\x1F\x03\x02\x02\x02\u0111" + + "\u0112\x07A\x02\x02\u0112\u0113\x07H\x02\x02\u0113\u0118\x05(\x15\x02" + + "\u0114\u0115\x07$\x02\x02\u0115\u0117\x05(\x15\x02\u0116\u0114\x03\x02" + + "\x02\x02\u0117\u011A\x03\x02\x02\x02\u0118\u0116\x03\x02\x02\x02\u0118" + + "\u0119\x03\x02\x02\x02\u0119\u011B\x03\x02\x02\x02\u011A\u0118\x03\x02" + + "\x02\x02\u011B\u011C\x07B\x02\x02\u011C!\x03\x02\x02\x02\u011D\u011E\x07" + + "\x06\x02\x02\u011E\u011F\x05\x1A\x0E\x02\u011F#\x03\x02\x02\x02\u0120" + + "\u0122\x07\x13\x02\x02\u0121\u0123\x05\x1A\x0E\x02\u0122\u0121\x03\x02" + + "\x02\x02\u0122\u0123\x03\x02\x02\x02\u0123\u0126\x03\x02\x02\x02\u0124" + + "\u0125\x07 \x02\x02\u0125\u0127\x05\x1A\x0E\x02\u0126\u0124\x03\x02\x02" + + "\x02\u0126\u0127\x03\x02\x02\x02\u0127%\x03\x02\x02\x02\u0128\u0129\x07" + + "\n\x02\x02\u0129\u012C\x05\x1A\x0E\x02\u012A\u012B\x07 \x02\x02\u012B" + + "\u012D\x05\x1A\x0E\x02\u012C\u012A\x03\x02\x02\x02\u012C\u012D\x03\x02" + + "\x02\x02\u012D\'\x03\x02\x02\x02\u012E\u012F\t\x04\x02\x02\u012F)\x03" + + "\x02\x02\x02\u0130\u0135\x05.\x18\x02\u0131\u0132\x07&\x02\x02\u0132\u0134" + + "\x05.\x18\x02\u0133\u0131\x03\x02\x02\x02\u0134\u0137\x03\x02\x02\x02" + + "\u0135\u0133\x03\x02\x02\x02\u0135\u0136\x03\x02\x02\x02\u0136+\x03\x02" + + "\x02\x02\u0137\u0135\x03\x02\x02\x02\u0138\u013D\x050\x19\x02\u0139\u013A" + + "\x07&\x02\x02\u013A\u013C\x050\x19\x02\u013B\u0139\x03\x02\x02\x02\u013C" + + "\u013F\x03\x02\x02\x02\u013D\u013B\x03\x02\x02\x02\u013D\u013E\x03\x02" + + "\x02\x02\u013E-\x03\x02\x02\x02\u013F\u013D\x03\x02\x02\x02\u0140\u0141" + + "\t\x05\x02\x02\u0141/\x03\x02\x02\x02\u0142\u0143\t\x06\x02\x02\u0143" + + "1\x03\x02\x02\x02\u0144\u016F\x07/\x02\x02\u0145\u0146\x05R*\x02\u0146" + + "\u0147\x07C\x02\x02\u0147\u016F\x03\x02\x02\x02\u0148\u016F\x05P)\x02" + + "\u0149\u016F\x05R*\x02\u014A\u016F\x05L\'\x02\u014B\u016F\x072\x02\x02" + + "\u014C\u016F\x05T+\x02\u014D\u014E\x07A\x02\x02\u014E\u0153\x05N(\x02" + + "\u014F\u0150\x07$\x02\x02\u0150\u0152\x05N(\x02\u0151\u014F\x03\x02\x02" + + "\x02\u0152\u0155\x03\x02\x02\x02\u0153\u0151\x03\x02\x02\x02\u0153\u0154" + + "\x03\x02\x02\x02\u0154\u0156\x03\x02\x02\x02\u0155\u0153\x03\x02\x02\x02" + + "\u0156\u0157\x07B\x02\x02\u0157\u016F\x03\x02\x02\x02\u0158\u0159\x07" + + "A\x02\x02\u0159\u015E\x05L\'\x02\u015A\u015B\x07$\x02\x02\u015B\u015D" + + "\x05L\'\x02\u015C\u015A\x03\x02\x02\x02\u015D\u0160\x03\x02\x02\x02\u015E" + + "\u015C\x03\x02\x02\x02\u015E\u015F\x03\x02\x02\x02\u015F\u0161\x03\x02" + + "\x02\x02\u0160\u015E\x03\x02\x02\x02\u0161\u0162\x07B\x02\x02\u0162\u016F" + + "\x03\x02\x02\x02\u0163\u0164\x07A\x02\x02\u0164\u0169\x05T+\x02\u0165" + + "\u0166\x07$\x02\x02\u0166\u0168\x05T+\x02\u0167\u0165\x03\x02\x02\x02" + + "\u0168\u016B\x03\x02\x02\x02\u0169\u0167\x03\x02\x02\x02\u0169\u016A\x03" + + "\x02\x02\x02\u016A\u016C\x03\x02\x02\x02\u016B\u0169\x03\x02\x02\x02\u016C" + + "\u016D\x07B\x02\x02\u016D\u016F\x03\x02\x02\x02\u016E\u0144\x03\x02\x02" + + "\x02\u016E\u0145\x03\x02\x02\x02\u016E\u0148\x03\x02\x02\x02\u016E\u0149" + + "\x03\x02\x02\x02\u016E\u014A\x03\x02\x02\x02\u016E\u014B\x03\x02\x02\x02" + + "\u016E\u014C\x03\x02\x02\x02\u016E\u014D\x03\x02\x02\x02\u016E\u0158\x03" + + "\x02\x02\x02\u016E\u0163\x03\x02\x02\x02\u016F3\x03\x02\x02\x02\u0170" + + "\u0171\x07\f\x02\x02\u0171\u0172\x07\x1E\x02\x02\u01725\x03\x02\x02\x02" + + "\u0173\u0174\x07\x12\x02\x02\u0174\u0179\x058\x1D\x02\u0175\u0176\x07" + + "$\x02\x02\u0176\u0178\x058\x1D\x02\u0177\u0175\x03\x02\x02\x02\u0178\u017B" + + "\x03\x02\x02\x02\u0179\u0177\x03\x02\x02\x02\u0179\u017A\x03\x02\x02\x02" + + "\u017A7\x03\x02\x02\x02\u017B\u0179\x03\x02\x02\x02\u017C\u017E\x05\f" + + "\x07\x02\u017D\u017F\t\x07\x02\x02\u017E\u017D\x03\x02\x02\x02\u017E\u017F" + + "\x03\x02\x02\x02\u017F\u0182\x03\x02\x02\x02\u0180\u0181\x070\x02\x02" + + "\u0181\u0183\t\b\x02\x02\u0182\u0180\x03\x02\x02\x02\u0182\u0183\x03\x02" + + "\x02\x02\u01839\x03\x02\x02\x02\u0184\u0185\x07\v\x02\x02\u0185\u018A" + + "\x05,\x17\x02\u0186\u0187\x07$\x02\x02\u0187\u0189\x05,\x17\x02\u0188" + + "\u0186\x03\x02\x02\x02\u0189\u018C\x03\x02\x02\x02\u018A\u0188\x03\x02" + + "\x02\x02\u018A\u018B\x03\x02\x02\x02\u018B\u0197\x03\x02\x02\x02\u018C" + + "\u018A\x03\x02\x02\x02\u018D\u018E\x07\x0E\x02\x02\u018E\u0193\x05,\x17" + + "\x02\u018F\u0190\x07$\x02\x02\u0190\u0192\x05,\x17\x02\u0191\u018F\x03" + + "\x02\x02\x02\u0192\u0195\x03\x02\x02\x02\u0193\u0191\x03\x02\x02\x02\u0193" + + "\u0194\x03\x02\x02\x02\u0194\u0197\x03\x02\x02\x02\u0195\u0193\x03\x02" + + "\x02\x02\u0196\u0184\x03\x02\x02\x02\u0196\u018D\x03\x02\x02\x02\u0197" + + ";\x03\x02\x02\x02\u0198\u0199\x07\x04\x02\x02\u0199\u019E\x05,\x17\x02" + + "\u019A\u019B\x07$\x02\x02\u019B\u019D\x05,\x17\x02\u019C\u019A\x03\x02" + + "\x02\x02\u019D\u01A0\x03\x02\x02\x02\u019E\u019C\x03\x02\x02\x02\u019E" + + "\u019F\x03\x02\x02\x02\u019F=\x03\x02\x02\x02\u01A0\u019E\x03\x02\x02" + + "\x02\u01A1\u01A2\x07\x0F\x02\x02\u01A2\u01A7\x05@!\x02\u01A3\u01A4\x07" + + "$\x02\x02\u01A4\u01A6\x05@!\x02\u01A5\u01A3\x03\x02\x02\x02\u01A6\u01A9" + + "\x03\x02\x02\x02\u01A7\u01A5\x03\x02\x02\x02\u01A7\u01A8\x03\x02\x02\x02" + + "\u01A8?\x03\x02\x02\x02\u01A9\u01A7\x03\x02\x02\x02\u01AA\u01AB\x05,\x17" + + "\x02\u01AB\u01AC\x07Q\x02\x02\u01AC\u01AD\x05,\x17\x02\u01ADA\x03\x02" + + "\x02\x02\u01AE\u01AF\x07\x03\x02\x02\u01AF\u01B0\x05\x14\v\x02\u01B0\u01B2" + + "\x05T+\x02\u01B1\u01B3\x05H%\x02\u01B2\u01B1\x03\x02\x02\x02\u01B2\u01B3" + + "\x03\x02\x02\x02\u01B3C\x03\x02\x02\x02\u01B4\u01B5\x07\t\x02\x02\u01B5" + + "\u01B6\x05\x14\v\x02\u01B6\u01B7\x05T+\x02\u01B7E\x03\x02\x02\x02\u01B8" + + "\u01B9\x07\r\x02\x02\u01B9\u01BA\x05*\x16\x02\u01BAG\x03\x02\x02\x02\u01BB" + + "\u01C0\x05J&\x02\u01BC\u01BD\x07$\x02\x02\u01BD\u01BF\x05J&\x02\u01BE" + + "\u01BC\x03\x02\x02\x02\u01BF\u01C2\x03\x02\x02\x02\u01C0\u01BE\x03\x02" + + "\x02\x02\u01C0\u01C1\x03\x02\x02\x02\u01C1I\x03\x02\x02\x02\u01C2\u01C0" + + "\x03\x02\x02\x02\u01C3\u01C4\x05.\x18\x02\u01C4\u01C5\x07#\x02\x02\u01C5" + + "\u01C6\x052\x1A\x02\u01C6K\x03\x02\x02\x02\u01C7\u01C8\t\t\x02\x02\u01C8" + + "M\x03\x02\x02\x02\u01C9\u01CC\x05P)\x02\u01CA\u01CC\x05R*\x02\u01CB\u01C9" + + "\x03\x02\x02\x02\u01CB\u01CA\x03\x02\x02\x02\u01CCO\x03\x02\x02\x02\u01CD" + + "\u01CF\t\x02\x02\x02\u01CE\u01CD\x03\x02\x02\x02\u01CE\u01CF\x03\x02\x02" + + "\x02\u01CF\u01D0\x03\x02\x02\x02\u01D0\u01D1\x07\x1F\x02\x02\u01D1Q\x03" + + "\x02\x02\x02\u01D2\u01D4\t\x02\x02\x02\u01D3\u01D2\x03\x02\x02\x02\u01D3" + + "\u01D4\x03\x02\x02\x02\u01D4\u01D5\x03\x02\x02\x02\u01D5\u01D6\x07\x1E" + + "\x02\x02\u01D6S\x03\x02\x02\x02\u01D7\u01D8\x07\x1D\x02\x02\u01D8U\x03" + + "\x02\x02\x02\u01D9\u01DA\t\n\x02\x02\u01DAW\x03\x02\x02\x02\u01DB\u01DC" + + "\x07\x07\x02\x02\u01DC\u01DD\x05Z.\x02\u01DDY\x03\x02\x02\x02\u01DE\u01DF" + + "\x07A\x02\x02\u01DF\u01E0\x05\x04\x03\x02\u01E0\u01E1\x07B\x02\x02\u01E1" + + "[\x03\x02\x02\x02\u01E2\u01E3\x07\x11\x02\x02\u01E3\u01E7\x07a\x02\x02" + + "\u01E4\u01E5\x07\x11\x02\x02\u01E5\u01E7\x07b\x02\x02\u01E6\u01E2\x03" + + "\x02\x02\x02\u01E6\u01E4\x03\x02\x02\x02\u01E7]\x03\x02\x02\x02\u01E8" + + "\u01EC\x07\x05\x02\x02\u01E9\u01EB\x05b2\x02\u01EA\u01E9\x03\x02\x02\x02" + + "\u01EB\u01EE\x03\x02\x02\x02\u01EC\u01EA\x03\x02\x02\x02\u01EC\u01ED\x03" + + "\x02\x02\x02\u01ED\u01EF\x03\x02\x02\x02\u01EE\u01EC\x03\x02\x02\x02\u01EF" + + "\u01F2\x07W\x02\x02\u01F0\u01F1\x07U\x02\x02\u01F1\u01F3\x05,\x17\x02" + + "\u01F2\u01F0\x03\x02\x02\x02\u01F2\u01F3\x03\x02\x02\x02\u01F3\u01FD\x03" + + "\x02\x02\x02\u01F4\u01F5\x07V\x02\x02\u01F5\u01FA\x05`1\x02\u01F6\u01F7" + + "\x07$\x02\x02\u01F7\u01F9\x05`1\x02\u01F8\u01F6\x03\x02\x02\x02\u01F9" + + "\u01FC\x03\x02\x02\x02\u01FA\u01F8\x03\x02\x02\x02\u01FA\u01FB\x03\x02" + + "\x02\x02\u01FB\u01FE\x03\x02\x02\x02\u01FC\u01FA\x03\x02\x02\x02\u01FD" + + "\u01F4\x03\x02\x02\x02\u01FD\u01FE\x03\x02\x02\x02\u01FE_\x03\x02\x02" + + "\x02\u01FF\u0200\x05,\x17\x02\u0200\u0201\x07#\x02\x02\u0201\u0203\x03" + + "\x02\x02\x02\u0202\u01FF\x03\x02\x02\x02\u0202\u0203\x03\x02\x02\x02\u0203" + + "\u0204\x03\x02\x02\x02\u0204\u0205\x05,\x17\x02\u0205a\x03\x02\x02\x02" + + "\u0206\u0207\x07A\x02\x02\u0207\u0208\x07g\x02\x02\u0208\u0209\x07f\x02" + + "\x02\u0209\u020A\x07g\x02\x02\u020A\u020B\x07B\x02\x02\u020Bc\x03\x02" + + "\x02\x026ov\x85\x91\x9A\xA2\xA6\xAE\xB0\xB5\xBC\xC1\xC8\xCE\xD6\xD8\xE2" + + "\xEC\xEF\xFB\u0103\u010B\u010F\u0118\u0122\u0126\u012C\u0135\u013D\u0153" + + "\u015E\u0169\u016E\u0179\u017E\u0182\u018A\u0193\u0196\u019E\u01A7\u01B2" + + "\u01C0\u01CB\u01CE\u01D3\u01E6\u01EC\u01F2\u01FA\u01FD\u0202"; public static __ATN: ATN; public static get _ATN(): ATN { if (!esql_parser.__ATN) { @@ -4045,13 +4063,18 @@ export class EvalCommandContext extends ParserRuleContext { export class StatsCommandContext extends ParserRuleContext { + public _stats: FieldsContext; + public _grouping: FieldsContext; public STATS(): TerminalNode { return this.getToken(esql_parser.STATS, 0); } - public fields(): FieldsContext | undefined { - return this.tryGetRuleContext(0, FieldsContext); - } public BY(): TerminalNode | undefined { return this.tryGetToken(esql_parser.BY, 0); } - public grouping(): GroupingContext | undefined { - return this.tryGetRuleContext(0, GroupingContext); + public fields(): FieldsContext[]; + public fields(i: number): FieldsContext; + public fields(i?: number): FieldsContext | FieldsContext[] { + if (i === undefined) { + return this.getRuleContexts(FieldsContext); + } else { + return this.getRuleContext(i, FieldsContext); + } } constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); @@ -4074,14 +4097,19 @@ export class StatsCommandContext extends ParserRuleContext { export class InlinestatsCommandContext extends ParserRuleContext { + public _stats: FieldsContext; + public _grouping: FieldsContext; public INLINESTATS(): TerminalNode { return this.getToken(esql_parser.INLINESTATS, 0); } - public fields(): FieldsContext { - return this.getRuleContext(0, FieldsContext); + public fields(): FieldsContext[]; + public fields(i: number): FieldsContext; + public fields(i?: number): FieldsContext | FieldsContext[] { + if (i === undefined) { + return this.getRuleContexts(FieldsContext); + } else { + return this.getRuleContext(i, FieldsContext); + } } public BY(): TerminalNode | undefined { return this.tryGetToken(esql_parser.BY, 0); } - public grouping(): GroupingContext | undefined { - return this.tryGetRuleContext(0, GroupingContext); - } constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); } @@ -4102,45 +4130,6 @@ export class InlinestatsCommandContext extends ParserRuleContext { } -export class GroupingContext extends ParserRuleContext { - public qualifiedName(): QualifiedNameContext[]; - public qualifiedName(i: number): QualifiedNameContext; - public qualifiedName(i?: number): QualifiedNameContext | QualifiedNameContext[] { - if (i === undefined) { - return this.getRuleContexts(QualifiedNameContext); - } else { - return this.getRuleContext(i, QualifiedNameContext); - } - } - public COMMA(): TerminalNode[]; - public COMMA(i: number): TerminalNode; - public COMMA(i?: number): TerminalNode | TerminalNode[] { - if (i === undefined) { - return this.getTokens(esql_parser.COMMA); - } else { - return this.getToken(esql_parser.COMMA, i); - } - } - constructor(parent: ParserRuleContext | undefined, invokingState: number) { - super(parent, invokingState); - } - // @Override - public get ruleIndex(): number { return esql_parser.RULE_grouping; } - // @Override - public enterRule(listener: esql_parserListener): void { - if (listener.enterGrouping) { - listener.enterGrouping(this); - } - } - // @Override - public exitRule(listener: esql_parserListener): void { - if (listener.exitGrouping) { - listener.exitGrouping(this); - } - } -} - - export class FromIdentifierContext extends ParserRuleContext { public FROM_UNQUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.FROM_UNQUOTED_IDENTIFIER, 0); } public QUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.QUOTED_IDENTIFIER, 0); } @@ -4266,7 +4255,7 @@ export class IdentifierContext extends ParserRuleContext { export class IdentifierPatternContext extends ParserRuleContext { - public PROJECT_UNQUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.PROJECT_UNQUOTED_IDENTIFIER, 0); } + public UNQUOTED_ID_PATTERN(): TerminalNode | undefined { return this.tryGetToken(esql_parser.UNQUOTED_ID_PATTERN, 0); } public QUOTED_IDENTIFIER(): TerminalNode | undefined { return this.tryGetToken(esql_parser.QUOTED_IDENTIFIER, 0); } constructor(parent: ParserRuleContext | undefined, invokingState: number) { super(parent, invokingState); @@ -5208,11 +5197,18 @@ export class ShowFunctionsContext extends ShowCommandContext { export class EnrichCommandContext extends ParserRuleContext { - public _policyName: FromIdentifierContext; + public _policyName: Token; public _matchField: QualifiedNamePatternContext; public ENRICH(): TerminalNode { return this.getToken(esql_parser.ENRICH, 0); } - public fromIdentifier(): FromIdentifierContext { - return this.getRuleContext(0, FromIdentifierContext); + public ENRICH_POLICY_NAME(): TerminalNode { return this.getToken(esql_parser.ENRICH_POLICY_NAME, 0); } + public setting(): SettingContext[]; + public setting(i: number): SettingContext; + public setting(i?: number): SettingContext | SettingContext[] { + if (i === undefined) { + return this.getRuleContexts(SettingContext); + } else { + return this.getRuleContext(i, SettingContext); + } } public ON(): TerminalNode | undefined { return this.tryGetToken(esql_parser.ON, 0); } public WITH(): TerminalNode | undefined { return this.tryGetToken(esql_parser.WITH, 0); } @@ -5290,3 +5286,38 @@ export class EnrichWithClauseContext extends ParserRuleContext { } +export class SettingContext extends ParserRuleContext { + public _name: Token; + public _value: Token; + public OPENING_BRACKET(): TerminalNode { return this.getToken(esql_parser.OPENING_BRACKET, 0); } + public COLON(): TerminalNode { return this.getToken(esql_parser.COLON, 0); } + public CLOSING_BRACKET(): TerminalNode { return this.getToken(esql_parser.CLOSING_BRACKET, 0); } + public SETTING(): TerminalNode[]; + public SETTING(i: number): TerminalNode; + public SETTING(i?: number): TerminalNode | TerminalNode[] { + if (i === undefined) { + return this.getTokens(esql_parser.SETTING); + } else { + return this.getToken(esql_parser.SETTING, i); + } + } + constructor(parent: ParserRuleContext | undefined, invokingState: number) { + super(parent, invokingState); + } + // @Override + public get ruleIndex(): number { return esql_parser.RULE_setting; } + // @Override + public enterRule(listener: esql_parserListener): void { + if (listener.enterSetting) { + listener.enterSetting(this); + } + } + // @Override + public exitRule(listener: esql_parserListener): void { + if (listener.exitSetting) { + listener.exitSetting(this); + } + } +} + + diff --git a/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts b/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts index de114f648d0b0..31c0d1ec27beb 100644 --- a/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts +++ b/packages/kbn-monaco/src/esql/antlr/esql_parser_listener.ts @@ -52,7 +52,6 @@ import { MetadataContext } from "./esql_parser"; import { EvalCommandContext } from "./esql_parser"; import { StatsCommandContext } from "./esql_parser"; import { InlinestatsCommandContext } from "./esql_parser"; -import { GroupingContext } from "./esql_parser"; import { FromIdentifierContext } from "./esql_parser"; import { QualifiedNameContext } from "./esql_parser"; import { QualifiedNamePatternContext } from "./esql_parser"; @@ -82,6 +81,7 @@ import { SubqueryExpressionContext } from "./esql_parser"; import { ShowCommandContext } from "./esql_parser"; import { EnrichCommandContext } from "./esql_parser"; import { EnrichWithClauseContext } from "./esql_parser"; +import { SettingContext } from "./esql_parser"; /** @@ -675,17 +675,6 @@ export interface esql_parserListener extends ParseTreeListener { */ exitInlinestatsCommand?: (ctx: InlinestatsCommandContext) => void; - /** - * Enter a parse tree produced by `esql_parser.grouping`. - * @param ctx the parse tree - */ - enterGrouping?: (ctx: GroupingContext) => void; - /** - * Exit a parse tree produced by `esql_parser.grouping`. - * @param ctx the parse tree - */ - exitGrouping?: (ctx: GroupingContext) => void; - /** * Enter a parse tree produced by `esql_parser.fromIdentifier`. * @param ctx the parse tree @@ -1004,5 +993,16 @@ export interface esql_parserListener extends ParseTreeListener { * @param ctx the parse tree */ exitEnrichWithClause?: (ctx: EnrichWithClauseContext) => void; + + /** + * Enter a parse tree produced by `esql_parser.setting`. + * @param ctx the parse tree + */ + enterSetting?: (ctx: SettingContext) => void; + /** + * Exit a parse tree produced by `esql_parser.setting`. + * @param ctx the parse tree + */ + exitSetting?: (ctx: SettingContext) => void; } diff --git a/packages/kbn-monaco/src/esql/language.ts b/packages/kbn-monaco/src/esql/language.ts index 956baa4405e0a..33a911b2272d6 100644 --- a/packages/kbn-monaco/src/esql/language.ts +++ b/packages/kbn-monaco/src/esql/language.ts @@ -91,7 +91,7 @@ export const ESQLLang: CustomLangModuleType = { }, getSuggestionProvider: (callbacks?: ESQLCallbacks): monaco.languages.CompletionItemProvider => { return { - triggerCharacters: [',', '(', '=', ' ', ''], + triggerCharacters: [',', '(', '=', ' ', '[', ''], async provideCompletionItems( model: monaco.editor.ITextModel, position: monaco.Position, diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts index 939d6d764f513..8cc206cbd2937 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_factory.ts @@ -43,6 +43,7 @@ import { getPolicyName, getMatchField, getEnrichClauses, + getPolicySettings, } from './ast_walker'; import type { ESQLAst } from './types'; @@ -141,7 +142,8 @@ export class AstListener implements ESQLParserListener { exitStatsCommand(ctx: StatsCommandContext) { const command = createCommand('stats', ctx); this.ast.push(command); - command.args.push(...collectAllFieldsStatements(ctx.fields()), ...visitByOption(ctx)); + const [statsExpr, byExpr] = ctx.fields(); + command.args.push(...collectAllFieldsStatements(statsExpr), ...visitByOption(ctx, byExpr)); } /** @@ -244,6 +246,11 @@ export class AstListener implements ESQLParserListener { exitEnrichCommand(ctx: EnrichCommandContext) { const command = createCommand('enrich', ctx); this.ast.push(command); - command.args.push(...getPolicyName(ctx), ...getMatchField(ctx), ...getEnrichClauses(ctx)); + command.args.push( + ...getPolicySettings(ctx), + ...getPolicyName(ctx), + ...getMatchField(ctx), + ...getEnrichClauses(ctx) + ); } } diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts index 1a7dc44160872..d972b76b1c207 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_helpers.ts @@ -6,6 +6,11 @@ * Side Public License, v 1. */ +/** + * In case of changes in the grammar, this script should be updated: esql_update_ast_script.js + */ + +import { Token } from 'antlr4ts'; import type { ParserRuleContext } from 'antlr4ts/ParserRuleContext'; import { ErrorNode } from 'antlr4ts/tree/ErrorNode'; import type { TerminalNode } from 'antlr4ts/tree/TerminalNode'; @@ -14,6 +19,7 @@ import type { DecimalValueContext, IntegerValueContext, QualifiedIntegerLiteralContext, + SettingContext, } from '../../antlr/esql_parser'; import { getPosition } from './ast_position_utils'; import type { @@ -27,6 +33,7 @@ import type { ESQLColumn, ESQLCommandOption, ESQLAstItem, + ESQLCommandMode, } from './types'; export function nonNullable(v: T): v is NonNullable { @@ -80,6 +87,23 @@ export function createFakeMultiplyLiteral(ctx: ArithmeticUnaryContext): ESQLLite }; } +export function createLiteralString(token: Token): ESQLLiteral { + const text = token.text!; + return { + type: 'literal', + literalType: 'string', + text, + name: text, + value: text, + location: getPosition(token), + incomplete: Boolean(token.text === ''), + }; +} + +function isMissingText(text: string) { + return / ctx.tryGetToken(keyCode, 0)) .filter(nonNullable)[0]; } @@ -170,11 +199,12 @@ function getQuotedText(ctx: ParserRuleContext) { function getUnquotedText(ctx: ParserRuleContext) { return [ 65 /* esql_parser.UNQUOTED_IDENTIFIER */, 71 /* esql_parser.FROM_UNQUOTED_IDENTIFIER */, - 76 /* esql_parser.PROJECT_UNQUOTED_IDENTIFIER */, + 75 /* esql_parser.UNQUOTED_ID_PATTERN */, ] .map((keyCode) => ctx.tryGetToken(keyCode, 0)) .filter(nonNullable)[0]; } +/* SCRIPT_MARKER_END */ const TICKS_REGEX = /(`)/g; @@ -194,6 +224,34 @@ export function wrapIdentifierAsArray(identifierCtx return Array.isArray(identifierCtx) ? identifierCtx : [identifierCtx]; } +export function createSettingTuple(ctx: SettingContext): ESQLCommandMode { + return { + type: 'mode', + name: ctx._name?.text || '', + text: ctx.text!, + location: getPosition(ctx.start, ctx.stop), + incomplete: + (ctx._name?.text ? isMissingText(ctx._name.text) : true) || + (ctx._value?.text ? isMissingText(ctx._value.text) : true), + args: [], + }; +} + +/** + * In https://github.com/elastic/elasticsearch/pull/103949 the ENRICH policy name + * changed from rule to token type so we need to handle this specifically + */ +export function createPolicy(token: Token): ESQLSource { + return { + type: 'source', + name: token.text!, + text: token.text!, + sourceType: 'policy', + location: getPosition(token), + incomplete: false, + }; +} + export function createSource( ctx: ParserRuleContext, type: 'index' | 'policy' = 'index' diff --git a/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts b/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts index 3916dc68d1ece..7e63d8d0bc9f0 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/ast_walker.ts @@ -73,6 +73,9 @@ import { computeLocationExtends, createColumnStar, wrapIdentifierAsArray, + createPolicy, + createSettingTuple, + createLiteralString, } from './ast_helpers'; import { getPosition } from './ast_position_utils'; import type { @@ -117,10 +120,25 @@ export function collectAllColumnIdentifiers( } export function getPolicyName(ctx: EnrichCommandContext) { - if (!ctx._policyName) { + if (!ctx._policyName || (ctx._policyName.text && / { + const node = createSettingTuple(setting); + if (setting._name?.text && setting._value?.text) { + node.args.push(createLiteralString(setting._value)!); + return node; + } + // incomplete setting + return node; + }); } export function getMatchField(ctx: EnrichCommandContext) { @@ -475,16 +493,12 @@ export function collectAllFieldsStatements(ctx: FieldsContext | undefined): ESQL return ast; } -export function visitByOption(ctx: StatsCommandContext) { - if (!ctx.BY()) { +export function visitByOption(ctx: StatsCommandContext, expr: FieldsContext | undefined) { + if (!ctx.BY() || !expr) { return []; } const option = createOption(ctx.BY()!.text.toLowerCase(), ctx); - for (const qnCtx of ctx.grouping()?.qualifiedName() || []) { - if (qnCtx?.text?.length) { - option.args.push(createColumn(qnCtx)); - } - } + option.args.push(...collectAllFieldsStatements(expr)); return [option]; } diff --git a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts index c6bf698319228..24cbcc1a51c86 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.test.ts @@ -20,12 +20,12 @@ import { commandDefinitions } from '../definitions/commands'; const triggerCharacters = [',', '(', '=', ' ']; -const fields = [ +const fields: Array<{ name: string; type: string; suggestedAs?: string }> = [ ...['string', 'number', 'date', 'boolean', 'ip'].map((type) => ({ name: `${type}Field`, type, })), - { name: 'any#Char$ field', type: 'number' }, + { name: 'any#Char$ field', type: 'number', suggestedAs: '`any#Char$ field`' }, { name: 'kubernetes.something.something', type: 'number' }, { name: `listField`, @@ -33,17 +33,35 @@ const fields = [ }, ]; -const indexes = ['a', 'index', 'otherIndex', '.secretIndex'].map((name) => ({ - name, - hidden: name.startsWith('.'), -})); +const indexes = ( + [] as Array<{ name: string; hidden: boolean; suggestedAs: string | undefined }> +).concat( + ['a', 'index', 'otherIndex', '.secretIndex', 'my-index'].map((name) => ({ + name, + hidden: name.startsWith('.'), + suggestedAs: undefined, + })), + ['my-index[quoted]', 'my-index$', 'my_index{}'].map((name) => ({ + name, + hidden: false, + suggestedAs: `\`${name}\``, + })) +); const policies = [ { name: 'policy', sourceIndices: ['enrichIndex1'], matchField: 'otherStringField', - enrichFields: ['otherField', 'yetAnotherField'], + enrichFields: ['otherField', 'yetAnotherField', 'yet-special-field'], + suggestedAs: undefined, }, + ...['my-policy[quoted]', 'my-policy$', 'my_policy{}'].map((name) => ({ + name, + sourceIndices: ['enrichIndex1'], + matchField: 'otherStringField', + enrichFields: ['otherField', 'yetAnotherField', 'yet-special-field'], + suggestedAs: `\`${name}\``, + })), ]; /** @@ -111,7 +129,7 @@ function getFunctionSignaturesByReturnType( function getFieldNamesByType(requestedType: string) { return fields .filter(({ type }) => requestedType === 'any' || type === requestedType) - .map(({ name }) => name); + .map(({ name, suggestedAs }) => suggestedAs || name); } function getLiteralsByType(type: string) { @@ -169,7 +187,10 @@ function createSuggestContext(text: string, triggerCharacter?: string) { function getPolicyFields(policyName: string) { return policies .filter(({ name }) => name === policyName) - .flatMap(({ enrichFields }) => enrichFields); + .flatMap(({ enrichFields }) => + // ok, this is a bit of cheating as it's using the same logic as in the helper + enrichFields.map((field) => (/[^a-zA-Z\d_\.@]/.test(field) ? `\`${field}\`` : field)) + ); } describe('autocomplete', () => { @@ -284,7 +305,9 @@ describe('autocomplete', () => { }); describe('from', () => { - const suggestedIndexes = indexes.filter(({ hidden }) => !hidden).map(({ name }) => name); + const suggestedIndexes = indexes + .filter(({ hidden }) => !hidden) + .map(({ name, suggestedAs }) => suggestedAs || name); // Monaco will filter further down here testSuggestions('f', sourceCommands); testSuggestions('from ', suggestedIndexes); @@ -424,24 +447,33 @@ describe('autocomplete', () => { testSuggestions('from a | stats ', ['var0 =', ...allAggFunctions]); testSuggestions('from a | stats a ', ['= $0']); testSuggestions('from a | stats a=', [...allAggFunctions]); - testSuggestions('from a | stats a=max(b) by ', getFieldNamesByType('any')); - testSuggestions('from a | stats a=max(b) BY ', getFieldNamesByType('any')); + testSuggestions('from a | stats a=max(b) by ', [ + ...getFieldNamesByType('any'), + ...getFunctionSignaturesByReturnType('eval', 'any', { evalMath: true }), + 'var0 =', + ]); + testSuggestions('from a | stats a=max(b) BY ', [ + ...getFieldNamesByType('any'), + ...getFunctionSignaturesByReturnType('eval', 'any', { evalMath: true }), + 'var0 =', + ]); testSuggestions('from a | stats a=c by d ', ['|', ',']); - testSuggestions('from a | stats a=c by d, ', getFieldNamesByType('any')); + testSuggestions('from a | stats a=c by d, ', [ + ...getFieldNamesByType('any'), + ...getFunctionSignaturesByReturnType('eval', 'any', { evalMath: true }), + 'var0 =', + ]); testSuggestions('from a | stats a=max(b), ', ['var0 =', ...allAggFunctions]); - testSuggestions( - 'from a | stats a=min()', - fields.filter(({ type }) => type === 'number').map(({ name }) => name), - '(' - ); + testSuggestions('from a | stats a=min()', getFieldNamesByType('number'), '('); testSuggestions('from a | stats a=min(b) ', ['by', '|', ',']); - testSuggestions('from a | stats a=min(b) by ', getFieldNamesByType('any')); + testSuggestions('from a | stats a=min(b) by ', [ + ...getFieldNamesByType('any'), + ...getFunctionSignaturesByReturnType('eval', 'any', { evalMath: true }), + 'var0 =', + ]); testSuggestions('from a | stats a=min(b),', ['var0 =', ...allAggFunctions]); testSuggestions('from a | stats var0=min(b),var1=c,', ['var2 =', ...allAggFunctions]); - testSuggestions( - 'from a | stats a=min(b), b=max()', - fields.filter(({ type }) => type === 'number').map(({ name }) => name) - ); + testSuggestions('from a | stats a=min(b), b=max()', getFieldNamesByType('number')); // @TODO: remove last 2 suggestions if possible testSuggestions('from a | eval var0=round(b), var1=round(c) | stats ', [ 'var2 =', @@ -461,16 +493,53 @@ describe('autocomplete', () => { getFieldNamesByType('number'), 21 /* b column in avg */ ); + + // while nested functions are not suggested, complete them should be possible via suggestions + testSuggestions('from a | stats avg(b) by numberField % ', [ + ...getFieldNamesByType('number'), + ...getFunctionSignaturesByReturnType('eval', 'number', { evalMath: true }), + '`avg(b)`', + ]); + testSuggestions('from a | stats avg(b) by var0 = ', [ + ...getFieldNamesByType('any'), + ...getFunctionSignaturesByReturnType('eval', 'any', { evalMath: true }), + ]); + testSuggestions('from a | stats avg(b) by c, ', [ + ...getFieldNamesByType('any'), + ...getFunctionSignaturesByReturnType('eval', 'any', { evalMath: true }), + 'var0 =', + ]); + testSuggestions('from a | stats avg(b) by c, var0 = ', [ + ...getFieldNamesByType('any'), + ...getFunctionSignaturesByReturnType('eval', 'any', { evalMath: true }), + ]); + testSuggestions('from a | stats avg(b) by numberField % 2 ', ['|', ',']); }); describe('enrich', () => { + const modes = ['any', 'coordinator', 'remote']; for (const prevCommand of [ '', '| enrich other-policy ', '| enrich other-policy on b ', '| enrich other-policy with c ', ]) { - testSuggestions(`from a ${prevCommand}| enrich `, ['policy']); + testSuggestions( + `from a ${prevCommand}| enrich `, + policies.map(({ name, suggestedAs }) => suggestedAs || name) + ); + testSuggestions( + `from a ${prevCommand}| enrich [`, + modes.map((mode) => `ccq.mode:${mode}`), + '[' + ); + // Not suggesting duplicate setting + testSuggestions(`from a ${prevCommand}| enrich [ccq.mode:any] [`, [], '['); + testSuggestions(`from a ${prevCommand}| enrich [ccq.mode:`, modes, ':'); + testSuggestions( + `from a ${prevCommand}| enrich [ccq.mode:any] `, + policies.map(({ name, suggestedAs }) => suggestedAs || name) + ); testSuggestions(`from a ${prevCommand}| enrich policy `, ['on', 'with', '|']); testSuggestions(`from a ${prevCommand}| enrich policy on `, [ 'stringField', diff --git a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.ts b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.ts index de1b07b39bed5..65c2401b3bf6a 100644 --- a/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.ts +++ b/packages/kbn-monaco/src/esql/lib/ast/autocomplete/autocomplete.ts @@ -14,8 +14,10 @@ import { columnExists, getColumnHit, getCommandDefinition, + getCommandMode, getCommandOption, getFunctionDefinition, + getLastCharFromTrimmed, isAssignment, isAssignmentComplete, isColumnItem, @@ -24,6 +26,7 @@ import { isLiteralItem, isOptionItem, isRestartingExpression, + isSettingItem, isSourceItem, isTimeIntervalItem, monacoPositionToOffset, @@ -34,6 +37,7 @@ import type { ESQLAst, ESQLAstItem, ESQLCommand, + ESQLCommandMode, ESQLCommandOption, ESQLFunction, ESQLSingleAstItem, @@ -60,6 +64,8 @@ import { buildVariablesDefinitions, buildOptionDefinition, TRIGGER_SUGGESTION_COMMAND, + buildSettingDefinitions, + buildSettingValueDefinitions, } from './factories'; import { EDITOR_MARKER } from '../shared/constants'; import { getAstContext, removeMarkerArgFromArgsList } from '../shared/context'; @@ -159,21 +165,31 @@ export async function suggest( let finalText = innerText; // check if all brackets are closed, otherwise close them - const unclosedBrackets = countBracketsUnclosed('(', finalText); + const unclosedRoundBrackets = countBracketsUnclosed('(', finalText); + const unclosedSquaredBrackets = countBracketsUnclosed('[', finalText); + const unclosedBrackets = unclosedRoundBrackets + unclosedSquaredBrackets; // if it's a comma by the user or a forced trigger by a function argument suggestion // add a marker to make the expression still valid if ( context.triggerCharacter === ',' || - (context.triggerKind === 0 && unclosedBrackets === 0) || + (context.triggerKind === 0 && unclosedRoundBrackets === 0) || (context.triggerCharacter === ' ' && // make this more robust (isMathFunction(innerText[offset - 2]) || isComma(innerText[offset - 2]))) ) { finalText = `${innerText.substring(0, offset)}${EDITOR_MARKER}${innerText.substring(offset)}`; } - if (unclosedBrackets > 0) { - // inject the closing brackets - finalText += Array(unclosedBrackets).fill(')').join(''); + // if there are unclosed brackets, close them + if (unclosedBrackets) { + for (const [char, count] of [ + [')', unclosedRoundBrackets], + [']', unclosedSquaredBrackets], + ]) { + if (count) { + // inject the closing brackets + finalText += Array(count).fill(char).join(''); + } + } } const { ast } = await astProvider(finalText); @@ -212,6 +228,20 @@ export async function suggest( getPolicyMetadata ); } + if (astContext.type === 'setting') { + // need this wrap/unwrap thing to make TS happy + const { setting, ...rest } = astContext; + if (setting && isSettingItem(setting)) { + return getSettingArgsSuggestions( + innerText, + ast, + { setting, ...rest }, + getFieldsByType, + getFieldsMap, + getPolicyMetadata + ); + } + } if (astContext.type === 'option') { // need this wrap/unwrap thing to make TS happy const { option, ...rest } = astContext; @@ -403,14 +433,35 @@ function isFunctionArgComplete( return { complete: true }; } +function extractArgMeta( + commandOrOption: ESQLCommand | ESQLCommandOption, + node: ESQLSingleAstItem | undefined +) { + let argIndex = commandOrOption.args.length; + const prevIndex = Math.max(argIndex - 1, 0); + const lastArg = removeMarkerArgFromArgsList(commandOrOption)!.args[prevIndex]; + if (isIncompleteItem(lastArg)) { + argIndex = prevIndex; + } + + // if a node is not specified use the lastArg + // mind to give priority to node as lastArg might be a function root + // => "a > b and c == d" gets translated into and( gt(a, b) , eq(c, d) ) => hence "and" is lastArg + const nodeArg = node || lastArg; + + return { argIndex, prevIndex, lastArg, nodeArg }; +} + async function getExpressionSuggestionsByType( innerText: string, commands: ESQLCommand[], { command, + option, node, }: { command: ESQLCommand; + option: ESQLCommandOption | undefined; node: ESQLSingleAstItem | undefined; }, getSources: GetSourceFn, @@ -420,18 +471,8 @@ async function getExpressionSuggestionsByType( getPolicyMetadata: GetPolicyMetadataFn ) { const commandDef = getCommandDefinition(command.name); - // get the argument position - let argIndex = command.args.length; - const prevIndex = Math.max(argIndex - 1, 0); - const lastArg = removeMarkerArgFromArgsList(command)!.args[prevIndex]; - if (isIncompleteItem(lastArg)) { - argIndex = prevIndex; - } + const { argIndex, prevIndex, lastArg, nodeArg } = extractArgMeta(command, node); - // if a node is not specified use the lastArg - // mind to give priority to node as lastArg might be a function root - // => "a > b and c == d" gets translated into and( gt(a, b) , eq(c, d) ) => hence "and" is lastArg - const nodeArg = node || lastArg; // A new expression is considered either // * just after a command name => i.e. ... | STATS // * or after a comma => i.e. STATS fieldA, @@ -513,6 +554,7 @@ async function getExpressionSuggestionsByType( ...(await getFieldsOrFunctionsSuggestions( [argDef.innerType || 'any'], command.name, + option?.name, getFieldsByType, { functions: canHaveAssignments, @@ -534,7 +576,9 @@ async function getExpressionSuggestionsByType( // ... | EVAL a const nodeArgType = extractFinalTypeFromArg(nodeArg, references); if (nodeArgType) { - suggestions.push(...getBuiltinCompatibleFunctionDefinition(command.name, nodeArgType)); + suggestions.push( + ...getBuiltinCompatibleFunctionDefinition(command.name, undefined, nodeArgType) + ); } else { suggestions.push(getAssignmentDefinitionCompletitionItem()); } @@ -547,11 +591,17 @@ async function getExpressionSuggestionsByType( // ... | STATS a = ..., b = // ... | EVAL a = ..., b = suggestions.push( - ...(await getFieldsOrFunctionsSuggestions(['any'], command.name, getFieldsByType, { - functions: true, - fields: false, - variables: nodeArg ? undefined : anyVariables, - })) + ...(await getFieldsOrFunctionsSuggestions( + ['any'], + command.name, + option?.name, + getFieldsByType, + { + functions: true, + fields: false, + variables: nodeArg ? undefined : anyVariables, + } + )) ); } } @@ -565,7 +615,7 @@ async function getExpressionSuggestionsByType( const [rightArg] = nodeArg.args[1] as [ESQLSingleAstItem]; const nodeArgType = extractFinalTypeFromArg(rightArg, references); suggestions.push( - ...getBuiltinCompatibleFunctionDefinition(command.name, nodeArgType || 'any') + ...getBuiltinCompatibleFunctionDefinition(command.name, undefined, nodeArgType || 'any') ); if (nodeArgType === 'number' && isLiteralItem(rightArg)) { // ... EVAL var = 1 @@ -586,6 +636,7 @@ async function getExpressionSuggestionsByType( suggestions.push( ...(await getBuiltinFunctionNextArgument( command, + option, argDef, nodeArg, nodeArgType || 'any', @@ -622,11 +673,17 @@ async function getExpressionSuggestionsByType( // ... | // In this case start suggesting something not strictly based on type suggestions.push( - ...(await getFieldsOrFunctionsSuggestions(['any'], command.name, getFieldsByType, { - functions: true, - fields: true, - variables: anyVariables, - })) + ...(await getFieldsOrFunctionsSuggestions( + ['any'], + command.name, + option?.name, + getFieldsByType, + { + functions: true, + fields: true, + variables: anyVariables, + } + )) ); } else { // if something is already present, leverage its type to suggest something in context @@ -643,6 +700,7 @@ async function getExpressionSuggestionsByType( suggestions.push( ...(await getBuiltinFunctionNextArgument( command, + option, argDef, nodeArg, nodeArgType, @@ -653,7 +711,7 @@ async function getExpressionSuggestionsByType( } else { // i.e. ... | field suggestions.push( - ...getBuiltinCompatibleFunctionDefinition(command.name, nodeArgType) + ...getBuiltinCompatibleFunctionDefinition(command.name, undefined, nodeArgType) ); } } @@ -674,7 +732,7 @@ async function getExpressionSuggestionsByType( } const nonOptionArgs = command.args.filter( - (arg) => !isOptionItem(arg) && !Array.isArray(arg) && !arg.incomplete + (arg) => !isOptionItem(arg) && !isSettingItem(arg) && !Array.isArray(arg) && !arg.incomplete ); // Perform some checks on mandatory arguments const mandatoryArgsAlreadyPresent = @@ -714,6 +772,7 @@ async function getExpressionSuggestionsByType( async function getBuiltinFunctionNextArgument( command: ESQLCommand, + option: ESQLCommandOption | undefined, argDef: { type: string }, nodeArg: ESQLFunction, nodeArgType: string, @@ -725,7 +784,9 @@ async function getBuiltinFunctionNextArgument( if (isFnComplete.complete) { // i.e. ... | field > 0 // i.e. ... | field + otherN - suggestions.push(...getBuiltinCompatibleFunctionDefinition(command.name, nodeArgType || 'any')); + suggestions.push( + ...getBuiltinCompatibleFunctionDefinition(command.name, option?.name, nodeArgType || 'any') + ); } else { // i.e. ... | field >= // i.e. ... | field + @@ -752,6 +813,7 @@ async function getBuiltinFunctionNextArgument( : finalType, ], command.name, + option?.name, getFieldsByType, { functions: true, @@ -766,7 +828,9 @@ async function getBuiltinFunctionNextArgument( // suggest something to complete the builtin function if (nestedType !== argDef.type) { suggestions.push( - ...getBuiltinCompatibleFunctionDefinition(command.name, nestedType, [argDef.type]) + ...getBuiltinCompatibleFunctionDefinition(command.name, undefined, nestedType, [ + argDef.type, + ]) ); } } @@ -778,6 +842,7 @@ async function getBuiltinFunctionNextArgument( async function getFieldsOrFunctionsSuggestions( types: string[], commandName: string, + optionName: string | undefined, getFieldsByType: GetFieldsByTypeFn, { functions, @@ -824,7 +889,7 @@ async function getFieldsOrFunctionsSuggestions( } const suggestions = filteredFieldsByType.concat( - functions ? getCompatibleFunctionDefinition(commandName, types, ignoreFn) : [], + functions ? getCompatibleFunctionDefinition(commandName, optionName, types, ignoreFn) : [], variables ? buildVariablesDefinitions(filteredVariablesByType) : [], getCompatibleLiterals(commandName, types) // literals are handled internally ); @@ -843,9 +908,11 @@ async function getFunctionArgsSuggestions( commands: ESQLCommand[], { command, + option, node, }: { command: ESQLCommand; + option: ESQLCommandOption | undefined; node: ESQLFunction; }, getFieldsByType: GetFieldsByTypeFn, @@ -897,6 +964,7 @@ async function getFunctionArgsSuggestions( ...(await getFieldsOrFunctionsSuggestions( types, command.name, + option?.name, getFieldsByType, { functions: command.name !== 'stats', @@ -919,6 +987,7 @@ async function getFunctionArgsSuggestions( ...(await getFieldsOrFunctionsSuggestions( ['time_literal_unit'], command.name, + option?.name, getFieldsByType, { functions: false, @@ -955,6 +1024,47 @@ async function getFunctionArgsSuggestions( return mathCommandDefinition; } +async function getSettingArgsSuggestions( + innerText: string, + commands: ESQLCommand[], + { + command, + node, + setting, + }: { + command: ESQLCommand; + setting: ESQLCommandMode; + node: ESQLSingleAstItem | undefined; + }, + getFieldsByType: GetFieldsByTypeFn, + getFieldsMaps: GetFieldsMapFn, + getPolicyMetadata: GetPolicyMetadataFn +) { + const suggestions = []; + const existingSettingArgs = new Set( + command.args + .filter((item) => isSettingItem(item) && !item.incomplete) + .map((item) => (isSettingItem(item) ? item.name : undefined)) + ); + + const settingDef = + setting.name && setting.incomplete + ? getCommandMode(setting.name) + : getCommandDefinition(command.name).modes.find(({ name }) => !existingSettingArgs.has(name)); + + if (settingDef) { + const lastChar = getLastCharFromTrimmed(innerText); + if (lastChar === '[') { + // COMMAND [ + suggestions.push(...buildSettingDefinitions(settingDef)); + } else if (lastChar === ':') { + // COMMAND [setting: + suggestions.push(...buildSettingValueDefinitions(settingDef)); + } + } + return suggestions; +} + async function getOptionArgsSuggestions( innerText: string, commands: ESQLCommand[], @@ -972,18 +1082,24 @@ async function getOptionArgsSuggestions( getPolicyMetadata: GetPolicyMetadataFn ) { const optionDef = getCommandOption(option.name); + const { nodeArg, argIndex, lastArg } = extractArgMeta(option, node); const suggestions = []; const isNewExpression = isRestartingExpression(innerText) || option.args.length === 0; + + const fieldsMap = await getFieldsMaps(); + const anyVariables = collectVariables(commands, fieldsMap); + + const references = { + fields: fieldsMap, + variables: anyVariables, + }; if (command.name === 'enrich') { if (option.name === 'on') { // if it's a new expression, suggest fields to match on if (isNewExpression || (option && isAssignment(option.args[0]) && !option.args[1])) { const policyName = isSourceItem(command.args[0]) ? command.args[0].name : undefined; if (policyName) { - const [policyMetadata, fieldsMap] = await Promise.all([ - getPolicyMetadata(policyName), - getFieldsMaps(), - ]); + const policyMetadata = await getPolicyMetadata(policyName); if (policyMetadata) { suggestions.push( ...buildMatchingFieldsDefinition( @@ -1004,25 +1120,16 @@ async function getOptionArgsSuggestions( } } if (option.name === 'with') { - let argIndex = option.args.length; - let lastArg = option.args[Math.max(argIndex - 1, 0)]; - if (isIncompleteItem(lastArg)) { - argIndex = Math.max(argIndex - 1, 0); - lastArg = option.args[argIndex]; - } const policyName = isSourceItem(command.args[0]) ? command.args[0].name : undefined; if (policyName) { - const [policyMetadata, fieldsMap] = await Promise.all([ - getPolicyMetadata(policyName), - getFieldsMaps(), - ]); - const anyVariables = collectVariables( + const policyMetadata = await getPolicyMetadata(policyName); + const anyEnhancedVariables = collectVariables( commands, appendEnrichFields(fieldsMap, policyMetadata) ); if (isNewExpression) { - suggestions.push(buildNewVarDefinition(findNewVariable(anyVariables))); + suggestions.push(buildNewVarDefinition(findNewVariable(anyEnhancedVariables))); } // make sure to remove the marker arg from the assign fn @@ -1044,7 +1151,9 @@ async function getOptionArgsSuggestions( ) { // ... | ENRICH ... WITH a // effectively only assign will apper - suggestions.push(...getBuiltinCompatibleFunctionDefinition(command.name, 'any')); + suggestions.push( + ...getBuiltinCompatibleFunctionDefinition(command.name, undefined, 'any') + ); } if ( @@ -1063,34 +1172,84 @@ async function getOptionArgsSuggestions( } if (command.name === 'rename') { if (option.args.length < 2) { - const fieldsMap = await getFieldsMaps(); - const anyVariables = collectVariables(commands, fieldsMap); suggestions.push(...buildVariablesDefinitions([findNewVariable(anyVariables)])); } } + if (command.name === 'stats') { + suggestions.push( + ...(await getFieldsOrFunctionsSuggestions( + ['column'], + command.name, + option.name, + getFieldsByType, + { + functions: false, + fields: true, + } + )) + ); + + const argDef = optionDef?.signature.params[argIndex]; + + const nodeArgType = extractFinalTypeFromArg(nodeArg, references); + // These cases can happen here, so need to identify each and provide the right suggestion + // i.e. ... | STATS ... BY field + + // i.e. ... | STATS ... BY field >= + + if (nodeArgType) { + if (isFunctionItem(nodeArg) && !isFunctionArgComplete(nodeArg, references).complete) { + suggestions.push( + ...(await getBuiltinFunctionNextArgument( + command, + option, + { type: argDef?.type || 'any' }, + nodeArg, + nodeArgType, + references, + getFieldsByType + )) + ); + } + } + } + if (optionDef) { if (!suggestions.length) { - const argIndex = Math.max(option.args.length - 1, 0); - const types = [optionDef.signature.params[argIndex].type].filter(nonNullable); - if (option.args.length && !isRestartingExpression(innerText)) { + const argDefIndex = optionDef.signature.multipleParams + ? 0 + : Math.max(option.args.length - 1, 0); + const types = [optionDef.signature.params[argDefIndex].type].filter(nonNullable); + // If it's a complete expression then proposed some final suggestions + // A complete expression is either a function or a column:
: <>} + {isResizing ?
: <>} )} diff --git a/packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts b/packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts index 2b46eeab849f3..e231a360ba36e 100644 --- a/packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts +++ b/packages/kbn-rule-data-utils/src/alerts_as_data_rbac.ts @@ -25,6 +25,7 @@ export const AlertConsumers = { UPTIME: 'uptime', ML: 'ml', STACK_ALERTS: 'stackAlerts', + EXAMPLE: 'AlertingExample', } as const; export type AlertConsumers = typeof AlertConsumers[keyof typeof AlertConsumers]; export type STATUS_VALUES = 'open' | 'acknowledged' | 'closed' | 'in-progress'; // TODO: remove 'in-progress' after migration to 'acknowledged' diff --git a/packages/kbn-search-connectors/lib/delete_connector.test.ts b/packages/kbn-search-connectors/lib/delete_connector.test.ts index 55dfdcbeae92b..240bfb1141fa8 100644 --- a/packages/kbn-search-connectors/lib/delete_connector.test.ts +++ b/packages/kbn-search-connectors/lib/delete_connector.test.ts @@ -8,8 +8,6 @@ import { ElasticsearchClient } from '@kbn/core/server'; -import { CONNECTORS_INDEX } from '..'; - import { deleteConnectorById } from './delete_connector'; jest.mock('./cancel_syncs', () => ({ @@ -19,7 +17,9 @@ import { cancelSyncs } from './cancel_syncs'; describe('deleteConnector lib function', () => { const mockClient = { - delete: jest.fn(), + transport: { + request: jest.fn(), + }, }; beforeEach(() => { @@ -28,14 +28,17 @@ describe('deleteConnector lib function', () => { }); it('should delete connector and cancel syncs', async () => { - mockClient.delete.mockImplementation(() => true); + mockClient.transport.request.mockImplementation(() => ({ + acknowledged: true, + })); - await deleteConnectorById(mockClient as unknown as ElasticsearchClient, 'connectorId'); + await expect( + deleteConnectorById(mockClient as unknown as ElasticsearchClient, 'connectorId') + ).resolves.toEqual({ acknowledged: true }); expect(cancelSyncs as jest.Mock).toHaveBeenCalledWith(mockClient, 'connectorId'); - expect(mockClient.delete).toHaveBeenCalledWith({ - id: 'connectorId', - index: CONNECTORS_INDEX, - refresh: 'wait_for', + expect(mockClient.transport.request).toHaveBeenCalledWith({ + method: 'DELETE', + path: '/_connector/connectorId', }); jest.useRealTimers(); }); diff --git a/packages/kbn-search-connectors/lib/delete_connector.ts b/packages/kbn-search-connectors/lib/delete_connector.ts index c64edfd3d906a..57ad48b8ff578 100644 --- a/packages/kbn-search-connectors/lib/delete_connector.ts +++ b/packages/kbn-search-connectors/lib/delete_connector.ts @@ -6,8 +6,8 @@ * Side Public License, v 1. */ +import { AcknowledgedResponseBase } from '@elastic/elasticsearch/lib/api/types'; import { ElasticsearchClient } from '@kbn/core-elasticsearch-server'; -import { CONNECTORS_INDEX } from '..'; import { cancelSyncs } from './cancel_syncs'; export const deleteConnectorById = async (client: ElasticsearchClient, id: string) => { @@ -17,5 +17,8 @@ export const deleteConnectorById = async (client: ElasticsearchClient, id: strin return promise; }; await Promise.all([cancelSyncs(client, id), timeout]); - return await client.delete({ id, index: CONNECTORS_INDEX, refresh: 'wait_for' }); + return await client.transport.request({ + method: 'DELETE', + path: `/_connector/${id}`, + }); }; diff --git a/packages/kbn-search-connectors/lib/update_connector_scheduling.test.ts b/packages/kbn-search-connectors/lib/update_connector_scheduling.test.ts index 618522831118d..56357a3fb166a 100644 --- a/packages/kbn-search-connectors/lib/update_connector_scheduling.test.ts +++ b/packages/kbn-search-connectors/lib/update_connector_scheduling.test.ts @@ -8,16 +8,14 @@ import { ElasticsearchClient } from '@kbn/core/server'; -import { CONNECTORS_INDEX } from '..'; +import { errors } from '@elastic/elasticsearch'; import { updateConnectorScheduling } from './update_connector_scheduling'; describe('addConnector lib function', () => { const mockClient = { - get: jest.fn(), - index: jest.fn(), - indices: { - refresh: jest.fn(), + transport: { + request: jest.fn(), }, }; @@ -26,36 +24,7 @@ describe('addConnector lib function', () => { }); it('should update connector scheduling', async () => { - mockClient.get.mockImplementationOnce(() => { - return Promise.resolve({ - _source: { - api_key_id: null, - configuration: {}, - created_at: null, - custom_scheduling: {}, - error: null, - index_name: 'index_name', - last_access_control_sync_error: null, - last_access_control_sync_scheduled_at: null, - last_access_control_sync_status: null, - last_seen: null, - last_sync_error: null, - last_sync_scheduled_at: null, - last_sync_status: null, - last_synced: null, - scheduling: { - access_control: { enabled: false, interval: '* * * * *' }, - full: { enabled: false, interval: '* * * * *' }, - incremental: { enabled: false, interval: '* * * * *' }, - }, - service_type: null, - status: 'not connected', - sync_now: false, - }, - index: CONNECTORS_INDEX, - }); - }); - mockClient.index.mockImplementation(() => ({ _id: 'fakeId' })); + mockClient.transport.request.mockImplementation(() => ({ result: 'updated' })); await expect( updateConnectorScheduling(mockClient as unknown as ElasticsearchClient, 'connectorId', { @@ -66,43 +35,32 @@ describe('addConnector lib function', () => { }, incremental: { enabled: false, interval: '* * * * *' }, }) - ).resolves.toEqual({ _id: 'fakeId' }); - expect(mockClient.index).toHaveBeenCalledWith({ - document: { - api_key_id: null, - configuration: {}, - created_at: null, - custom_scheduling: {}, - error: null, - index_name: 'index_name', - last_access_control_sync_error: null, - last_access_control_sync_scheduled_at: null, - last_access_control_sync_status: null, - last_seen: null, - last_sync_error: null, - last_sync_scheduled_at: null, - last_sync_status: null, - last_synced: null, + ).resolves.toEqual({ result: 'updated' }); + expect(mockClient.transport.request).toHaveBeenCalledWith({ + body: { scheduling: { access_control: { enabled: false, interval: '* * * * *' }, full: { enabled: true, interval: '1 2 3 4 5' }, incremental: { enabled: false, interval: '* * * * *' }, }, - service_type: null, - status: 'not connected', - sync_now: false, }, - id: 'connectorId', - index: CONNECTORS_INDEX, - }); - expect(mockClient.indices.refresh).toHaveBeenCalledWith({ - index: CONNECTORS_INDEX, + method: 'PUT', + path: '/_connector/connectorId/_scheduling', }); }); it('should not index document if there is no connector', async () => { - mockClient.get.mockImplementationOnce(() => { - return Promise.resolve({}); + mockClient.transport.request.mockImplementationOnce(() => { + return Promise.reject( + new errors.ResponseError({ + statusCode: 404, + body: { + error: { + type: `document_missing_exception`, + }, + }, + } as any) + ); }); await expect( updateConnectorScheduling(mockClient as unknown as ElasticsearchClient, 'connectorId', { @@ -114,6 +72,5 @@ describe('addConnector lib function', () => { incremental: { enabled: false, interval: '* * * * *' }, }) ).rejects.toEqual(new Error('Could not find document')); - expect(mockClient.index).not.toHaveBeenCalled(); }); }); diff --git a/packages/kbn-search-connectors/lib/update_connector_scheduling.ts b/packages/kbn-search-connectors/lib/update_connector_scheduling.ts index a0693dc3cd6f6..1adfce462631f 100644 --- a/packages/kbn-search-connectors/lib/update_connector_scheduling.ts +++ b/packages/kbn-search-connectors/lib/update_connector_scheduling.ts @@ -8,34 +8,34 @@ import { ElasticsearchClient } from '@kbn/core/server'; import { i18n } from '@kbn/i18n'; +import { isNotFoundException } from '../utils/identify_exceptions'; -import { CONNECTORS_INDEX } from '..'; - -import { ConnectorDocument, SchedulingConfiguraton } from '../types/connectors'; +import { SchedulingConfiguraton } from '../types/connectors'; +import { ConnectorsAPIUpdateResponse } from '../types/connectors_api'; export const updateConnectorScheduling = async ( client: ElasticsearchClient, connectorId: string, scheduling: SchedulingConfiguraton ) => { - const connectorResult = await client.get({ - id: connectorId, - index: CONNECTORS_INDEX, - }); - const connector = connectorResult._source; - if (connector) { - const result = await client.index({ - document: { ...connector, scheduling }, - id: connectorId, - index: CONNECTORS_INDEX, + try { + const result = await client.transport.request({ + method: 'PUT', + path: `/_connector/${connectorId}/_scheduling`, + body: { + scheduling, + }, }); - await client.indices.refresh({ index: CONNECTORS_INDEX }); return result; - } else { - throw new Error( - i18n.translate('searchConnectors.server.connectors.scheduling.error', { - defaultMessage: 'Could not find document', - }) - ); + } catch (err) { + if (isNotFoundException(err)) { + throw new Error( + i18n.translate('searchConnectors.server.connectors.scheduling.error', { + defaultMessage: 'Could not find document', + }) + ); + } + + throw err; } }; diff --git a/packages/kbn-search-connectors/types/connectors_api.ts b/packages/kbn-search-connectors/types/connectors_api.ts new file mode 100644 index 0000000000000..9fa12cd02b495 --- /dev/null +++ b/packages/kbn-search-connectors/types/connectors_api.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. + */ + +// TODO: delete this once ES client can be used for Connectors API + +enum Result { + created = 'created', + updated = 'updated', + deleted = 'deleted', + not_found = 'not_found', + no_op = 'noop', +} + +export interface ConnectorsAPIUpdateResponse { + result: Result; +} diff --git a/packages/kbn-search-connectors/types/index.ts b/packages/kbn-search-connectors/types/index.ts index f7ef8e3b4d941..8de24ee6b3a35 100644 --- a/packages/kbn-search-connectors/types/index.ts +++ b/packages/kbn-search-connectors/types/index.ts @@ -7,6 +7,7 @@ */ export * from './connectors'; +export * from './connectors_api'; export * from './native_connectors'; export * from './optimistic_concurrency'; export * from './pagination'; diff --git a/packages/kbn-search-connectors/types/native_connectors.ts b/packages/kbn-search-connectors/types/native_connectors.ts index 0fcac23e1038c..63c65d7c471a6 100644 --- a/packages/kbn-search-connectors/types/native_connectors.ts +++ b/packages/kbn-search-connectors/types/native_connectors.ts @@ -157,13 +157,33 @@ export const NATIVE_CONNECTOR_DEFINITIONS: Record predicate(rowA, rowB, 'asc' /* or 'desc' */)); +``` + +Basic usage with EUI DataGrid schemaDetector: + +```tsx +const [data, setData] = useState(table); +const dataGridColumns: EuiDataGridColumn[] = data.columns.map( (column) => ({ + ... + schema: getColumnType(column) +})); +const [sortingColumns, setSortingColumns] = useState([ + { id: 'custom', direction: 'asc' }, +]); + +const schemaDetectors = dataGridColumns.map((column) => { + const sortingHint = getColumnType(column); + const sortingCriteria = getSortingCriteria( + sortingHint, + column.id, + (val: unknwon) => String(val) + ); + return { + sortTextAsc: 'asc' + sortTextDesc: 'desc', + icon: 'starFilled', + type: sortingHint || '', + detector: () => 1, + // This is the actual logic that is used to sort the table + comparator: (_a, _b, direction, { aIndex, bIndex }) => + sortingCriteria(data.rows[aIndex], data.rows[bIndex], direction) as 0 | 1 | -1 + }; +}); + +return { ... } + }} +/>; +``` \ No newline at end of file diff --git a/packages/kbn-sort-predicates/index.ts b/packages/kbn-sort-predicates/index.ts new file mode 100644 index 0000000000000..63e0b6bbf005e --- /dev/null +++ b/packages/kbn-sort-predicates/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 { getSortingCriteria } from './src/sorting'; diff --git a/packages/kbn-sort-predicates/jest.config.js b/packages/kbn-sort-predicates/jest.config.js new file mode 100644 index 0000000000000..dc69bcd8e5a56 --- /dev/null +++ b/packages/kbn-sort-predicates/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-sort-predicates'], +}; diff --git a/packages/kbn-sort-predicates/kibana.jsonc b/packages/kbn-sort-predicates/kibana.jsonc new file mode 100644 index 0000000000000..c07088597a01e --- /dev/null +++ b/packages/kbn-sort-predicates/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/sort-predicates", + "owner": "@elastic/kibana-visualizations" +} diff --git a/packages/kbn-sort-predicates/package.json b/packages/kbn-sort-predicates/package.json new file mode 100644 index 0000000000000..05413a2b68e6e --- /dev/null +++ b/packages/kbn-sort-predicates/package.json @@ -0,0 +1,7 @@ +{ + "name": "@kbn/sort-predicates", + "private": true, + "version": "1.0.0", + "license": "SSPL-1.0 OR Elastic License 2.0", + "sideEffects": false +} \ No newline at end of file diff --git a/packages/kbn-sort-predicates/src/sorting.test.ts b/packages/kbn-sort-predicates/src/sorting.test.ts new file mode 100644 index 0000000000000..2c50158964505 --- /dev/null +++ b/packages/kbn-sort-predicates/src/sorting.test.ts @@ -0,0 +1,466 @@ +/* + * 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 { getSortingCriteria } from './sorting'; +import type { FieldFormat } from '@kbn/field-formats-plugin/common'; +import { DatatableColumnType } from '@kbn/expressions-plugin/common'; + +function getMockFormatter() { + return { convert: (v: unknown) => `${v as string}` } as FieldFormat; +} + +function testSorting({ + input, + output, + direction, + type, + keepLast, + reverseOutput = true, +}: { + input: unknown[]; + output: unknown[]; + direction: 'asc' | 'desc'; + type: DatatableColumnType | 'range' | 'version'; + keepLast?: boolean; // special flag to handle values that should always be last no matter the direction + reverseOutput?: boolean; +}) { + const datatable = input.map((v) => ({ + a: v, + })); + const sorted = [...output]; + if (direction === 'desc' && reverseOutput) { + sorted.reverse(); + if (keepLast) { + // Cycle shift of the first element + const firstEl = sorted.shift()!; + sorted.push(firstEl); + } + } + const criteria = getSortingCriteria(type, 'a', getMockFormatter()); + expect(datatable.sort((a, b) => criteria(a, b, direction)).map((row) => row.a)).toEqual(sorted); +} + +describe('Data sorting criteria', () => { + describe('Numeric values', () => { + for (const direction of ['asc', 'desc'] as const) { + it(`should provide the number criteria of numeric values (${direction})`, () => { + testSorting({ + input: [7, 6, 5, -Infinity, Infinity], + output: [-Infinity, 5, 6, 7, Infinity], + direction, + type: 'number', + }); + }); + + it(`should provide the number criteria for date values (${direction})`, () => { + const now = Date.now(); + testSorting({ + input: [now, 0, now - 150000], + output: [0, now - 150000, now], + direction, + type: 'date', + }); + }); + + it(`should provide the number criteria of array numeric values (${direction})`, () => { + testSorting({ + input: [7, [7, 1], [7, 2], [6], -Infinity, Infinity], + output: [-Infinity, [6], 7, [7, 1], [7, 2], Infinity], + direction, + type: 'number', + }); + }); + + it(`should provide the number criteria for array date values (${direction})`, () => { + const now = Date.now(); + testSorting({ + input: [now, [0, now], [0], now - 150000], + output: [[0], [0, now], now - 150000, now], + direction, + type: 'date', + }); + }); + } + + it(`should sort undefined and null to the end`, () => { + const now = Date.now(); + testSorting({ + input: [null, now, 0, undefined, null, now - 150000], + output: [0, now - 150000, now, null, undefined, null], + direction: 'asc', + type: 'date', + reverseOutput: false, + }); + + testSorting({ + input: [null, now, 0, undefined, null, now - 150000], + output: [now, now - 150000, 0, null, undefined, null], + direction: 'desc', + type: 'date', + reverseOutput: false, + }); + }); + + it(`should sort NaN to the end`, () => { + const now = Date.now(); + testSorting({ + input: [null, now, 0, undefined, Number.NaN, now - 150000], + output: [0, now - 150000, now, null, undefined, Number.NaN], + direction: 'asc', + type: 'number', + reverseOutput: false, + }); + + testSorting({ + input: [null, now, 0, undefined, Number.NaN, now - 150000], + output: [now, now - 150000, 0, null, undefined, Number.NaN], + direction: 'desc', + type: 'number', + reverseOutput: false, + }); + }); + }); + + describe('Version sorting', () => { + for (const direction of ['asc', 'desc'] as const) { + it(`should provide the version criteria for terms values (${direction})`, () => { + testSorting({ + input: ['1.21.0', '1.1.0', '1.112.0', '1.0.0'], + output: ['1.0.0', '1.1.0', '1.21.0', '1.112.0'], + direction, + type: 'version', + }); + }); + + it(`should provide the array version criteria for terms values (${direction})`, () => { + testSorting({ + input: [['1.21.0'], ['1.1.0', '1.1.1'], ['1.21.1', '1.1.1'], '1.112.0', '1.0.0'], + output: ['1.0.0', ['1.1.0', '1.1.1'], ['1.21.0'], ['1.21.1', '1.1.1'], '1.112.0'], + direction, + type: 'version', + }); + }); + } + + it('should sort non-version stuff to the end', () => { + testSorting({ + input: ['1.21.0', undefined, '1.1.0', null, '1.112.0', '__other__', '1.0.0'], + output: ['1.0.0', '1.1.0', '1.21.0', '1.112.0', undefined, null, '__other__'], + direction: 'asc', + type: 'version', + reverseOutput: false, + }); + + testSorting({ + input: ['1.21.0', undefined, '1.1.0', null, '1.112.0', '__other__', '1.0.0'], + output: ['1.112.0', '1.21.0', '1.1.0', '1.0.0', undefined, null, '__other__'], + direction: 'desc', + type: 'version', + reverseOutput: false, + }); + }); + }); + + describe('String or anything else as string', () => { + for (const direction of ['asc', 'desc'] as const) { + it(`should provide the string criteria for terms values (${direction})`, () => { + testSorting({ + input: ['a', 'b', 'c', 'd', '12'], + output: ['12', 'a', 'b', 'c', 'd'], + direction, + type: 'string', + }); + }); + + it(`should provide the string criteria for array terms values (${direction})`, () => { + testSorting({ + input: ['a', 'b', 'c', 'd', '12', ['a', 'b'], ['b', 'c']], + output: ['12', 'a', ['a', 'b'], 'b', ['b', 'c'], 'c', 'd'], + direction, + type: 'string', + }); + }); + + it(`should provide the string criteria for other types of values (${direction})`, () => { + testSorting({ + input: [true, false, false], + output: [false, false, true], + direction, + type: 'boolean', + }); + }); + + it(`should provide the string criteria for other types of array values (${direction})`, () => { + testSorting({ + input: [true, false, false, [true, false]], + output: [false, false, true, [true, false]], + direction, + type: 'boolean', + }); + }); + } + + it('should sort undefined and null to the end', () => { + testSorting({ + input: ['a', null, 'b', 'c', undefined, 'd', '12'], + output: ['12', 'a', 'b', 'c', 'd', null, undefined], + direction: 'asc', + type: 'string', + reverseOutput: false, + }); + + testSorting({ + input: ['a', null, 'b', 'c', undefined, 'd', '12'], + output: ['d', 'c', 'b', 'a', '12', null, undefined], + direction: 'desc', + type: 'string', + reverseOutput: false, + }); + + testSorting({ + input: [true, null, false, undefined, false], + output: [false, false, true, null, undefined], + direction: 'asc', + type: 'boolean', + reverseOutput: false, + }); + testSorting({ + input: [true, null, false, undefined, false], + output: [true, false, false, null, undefined], + direction: 'desc', + type: 'boolean', + reverseOutput: false, + }); + }); + }); + + describe('IP sorting', () => { + for (const direction of ['asc', 'desc'] as const) { + it(`should provide the IP criteria for IP values (IPv4 only values) - ${direction}`, () => { + testSorting({ + input: ['127.0.0.1', '192.168.1.50', '200.100.100.10', '10.0.1.76', '8.8.8.8'], + output: ['8.8.8.8', '10.0.1.76', '127.0.0.1', '192.168.1.50', '200.100.100.10'], + direction, + type: 'ip', + }); + }); + + it(`should provide the IP criteria for IP values (IPv6 only values) - ${direction}`, () => { + testSorting({ + input: [ + 'fc00::123', + '::1', + '2001:0db8:85a3:0000:0000:8a2e:0370:7334', + '2001:db8:1234:0000:0000:0000:0000:0000', + '2001:db8:1234::', // equivalent to the above + ], + output: [ + '::1', + '2001:db8:1234::', + '2001:db8:1234:0000:0000:0000:0000:0000', + '2001:0db8:85a3:0000:0000:8a2e:0370:7334', + 'fc00::123', + ], + direction, + type: 'ip', + }); + }); + + it(`should provide the IP criteria for IP values (mixed values) - ${direction}`, () => { + // A mix of IPv4, IPv6, IPv4 mapped to IPv6 + testSorting({ + input: [ + 'fc00::123', + '192.168.1.50', + '::FFFF:192.168.1.50', // equivalent to the above with the IPv6 mapping + '10.0.1.76', + '8.8.8.8', + '::1', + ], + output: [ + '::1', + '8.8.8.8', + '10.0.1.76', + '192.168.1.50', + '::FFFF:192.168.1.50', + 'fc00::123', + ], + direction, + type: 'ip', + }); + }); + + it(`should provide the IP criteria for IP values (mixed values with invalid "Other" field) - ${direction}`, () => { + testSorting({ + input: ['fc00::123', '192.168.1.50', 'Other', '10.0.1.76', '8.8.8.8', '::1'], + output: ['::1', '8.8.8.8', '10.0.1.76', '192.168.1.50', 'fc00::123', 'Other'], + direction, + type: 'ip', + keepLast: true, + }); + }); + + it(`should provide the IP criteria for array IP values (mixed values with invalid "Other" field) - ${direction}`, () => { + testSorting({ + input: [ + 'fc00::123', + '192.168.1.50', + 'Other', + '10.0.1.76', + '8.8.8.8', + '::1', + ['fc00::123', '192.168.1.50'], + ['::1', '10.0.1.76'], + ], + output: [ + '::1', + ['::1', '10.0.1.76'], + '8.8.8.8', + '10.0.1.76', + '192.168.1.50', + 'fc00::123', + ['fc00::123', '192.168.1.50'], + 'Other', + ], + direction, + type: 'ip', + keepLast: true, + }); + }); + } + + it('should sort undefined and null to the end', () => { + testSorting({ + input: [ + 'fc00::123', + '192.168.1.50', + null, + undefined, + 'Other', + '10.0.1.76', + '8.8.8.8', + '::1', + ], + output: [ + '::1', + '8.8.8.8', + '10.0.1.76', + '192.168.1.50', + 'fc00::123', + 'Other', + null, + undefined, + ], + direction: 'asc', + type: 'ip', + reverseOutput: false, + }); + + testSorting({ + input: [ + 'fc00::123', + '192.168.1.50', + null, + undefined, + 'Other', + '10.0.1.76', + '8.8.8.8', + '::1', + ], + output: [ + 'fc00::123', + '192.168.1.50', + '10.0.1.76', + '8.8.8.8', + '::1', + 'Other', + null, + undefined, + ], + direction: 'desc', + type: 'ip', + reverseOutput: false, + }); + }); + }); + + describe('Range sorting', () => { + for (const direction of ['asc', 'desc'] as const) { + it(`should sort closed ranges - ${direction}`, () => { + testSorting({ + input: [ + { gte: 1, lt: 5 }, + { gte: 0, lt: 5 }, + { gte: 0, lt: 1 }, + ], + output: [ + { gte: 0, lt: 1 }, + { gte: 0, lt: 5 }, + { gte: 1, lt: 5 }, + ], + direction, + type: 'range', + }); + }); + + it(`should sort open ranges - ${direction}`, () => { + testSorting({ + input: [{ gte: 1, lt: 5 }, { gte: 0, lt: 5 }, { gte: 0 }], + output: [{ gte: 0, lt: 5 }, { gte: 0 }, { gte: 1, lt: 5 }], + direction, + type: 'range', + }); + }); + + it(`should sort array values for both open and closed ranges - ${direction}`, () => { + testSorting({ + input: [ + { gte: 1, lt: 5 }, + , + [ + { gte: 0, lt: 5 }, + { gte: 1, lt: 5 }, + ], + [{ gte: 0 }, { gte: 1, lt: 5 }], + { gte: 0, lt: 5 }, + { gte: 0 }, + ], + output: [ + { gte: 0, lt: 5 }, + [ + { gte: 0, lt: 5 }, + { gte: 1, lt: 5 }, + ], + { gte: 0 }, + [{ gte: 0 }, { gte: 1, lt: 5 }], + { gte: 1, lt: 5 }, + ], + direction, + type: 'range', + }); + }); + } + + it('should sort undefined and null to the end', () => { + testSorting({ + input: [{ gte: 1, lt: 5 }, undefined, { gte: 0, lt: 5 }, null, { gte: 0 }], + output: [{ gte: 0, lt: 5 }, { gte: 0 }, { gte: 1, lt: 5 }, undefined, null], + direction: 'asc', + type: 'range', + reverseOutput: false, + }); + testSorting({ + input: [{ gte: 1, lt: 5 }, undefined, { gte: 0, lt: 5 }, null, { gte: 0 }], + output: [{ gte: 1, lt: 5 }, { gte: 0 }, { gte: 0, lt: 5 }, undefined, null], + direction: 'desc', + type: 'range', + reverseOutput: false, + }); + }); + }); +}); diff --git a/packages/kbn-sort-predicates/src/sorting.ts b/packages/kbn-sort-predicates/src/sorting.ts new file mode 100644 index 0000000000000..555ca22a24bf0 --- /dev/null +++ b/packages/kbn-sort-predicates/src/sorting.ts @@ -0,0 +1,218 @@ +/* + * 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 versionCompare from 'compare-versions'; +import valid from 'semver/functions/valid'; +import ipaddr, { type IPv4, type IPv6 } from 'ipaddr.js'; +import { FieldFormat } from '@kbn/field-formats-plugin/common'; + +type CompareFn = ( + v1: T | undefined, + v2: T | undefined, + direction: number, + formatter: FieldFormat +) => number; + +const numberCompare: CompareFn = (v1, v2) => (v1 ?? -Infinity) - (v2 ?? -Infinity); + +const stringComparison: CompareFn = (v1, v2, _, formatter) => { + const aString = formatter.convert(v1); + const bString = formatter.convert(v2); + if (v1 == null) { + return -1; + } + if (v2 == null) { + return 1; + } + return aString.localeCompare(bString); +}; + +// The maximum length of a IP is 39 chars for a IPv6 +// therefore set 40 for null values to always be longer +const MAX_IP_LENGTH = 40; + +const ipComparison: CompareFn = (v1, v2, direction) => { + const ipA = getSafeIpAddress(v1, direction); + const ipB = getSafeIpAddress(v2, direction); + + // Now compare each part of the IPv6 address and exit when a value != 0 is found + let i = 0; + let diff = ipA.parts[i] - ipB.parts[i]; + while (!diff && i < 7) { + i++; + diff = ipA.parts[i] - ipB.parts[i]; + } + + // in case of same address but written in different styles, sort by string length + if (diff === 0) { + const v1Length = v1 ? v1.length : MAX_IP_LENGTH; + const v2Length = v2 ? v2.length : MAX_IP_LENGTH; + return v1Length - v2Length; + } + return diff; +}; + +/** + * This is a comparison utility for array + * It performs a comparison for each pair of value and exists on the first comparison value != 0 + * @param array1 T[] + * @param array2 T[] + * @param directionFactor +1 / -1 + * @param compareFn + * @returns + */ +function compareArrays( + array1: T[], + array2: T[], + directionFactor: number, + formatter: FieldFormat, + compareFn: CompareFn +): number { + // sort by each pair of values + const maxLength = Math.max(array1.length, array2.length); + for (let i = 0; i < maxLength; i++) { + const comparisonValue = compareFn(array1[i], array2[i], directionFactor, formatter); + if (comparisonValue !== 0) { + return comparisonValue; + } + } + return 0; +} + +function isIPv6Address(ip: IPv4 | IPv6): ip is IPv6 { + return ip.kind() === 'ipv6'; +} + +function getSafeIpAddress(ip: string | undefined, directionFactor: number) { + if (ip == null || !ipaddr.isValid(ip)) { + // if ip is null, then it's a part of an array ip value + // therefore the comparison might be between a single value [ipA, undefined] vs multiple values ip [ipA, ipB] + // set in this case -1 for the undefined of the former to force it to be always before + const forceSortingFactor = ip == null ? -1 : directionFactor; + // for non valid IPs have the same behaviour as for now (we assume it's only the "Other" string) + // create a mock object which has all a special value to keep them always at the bottom of the list + return { parts: Array(8).fill(forceSortingFactor * Infinity) }; + } + const parsedIp = ipaddr.parse(ip); + return isIPv6Address(parsedIp) ? parsedIp : parsedIp.toIPv4MappedAddress(); +} + +const versionComparison: CompareFn = (v1, v2, direction) => { + const valueA = String(v1 ?? ''); + const valueB = String(v2 ?? ''); + const aInvalid = !valueA || !valid(valueA); + const bInvalid = !valueB || !valid(valueB); + if (aInvalid && bInvalid) { + return 0; + } + // need to fight the direction multiplication of the parent function + if (aInvalid) { + return direction * 1; + } + if (bInvalid) { + return direction * -1; + } + return versionCompare(valueA, valueB); +}; + +const openRange = { gte: -Infinity, lt: Infinity }; +const rangeComparison: CompareFn> = (v1, v2) => { + const rangeA = { ...openRange, ...v1 }; + const rangeB = { ...openRange, ...v2 }; + + const fromComparison = rangeA.gte - rangeB.gte; + const toComparison = rangeA.lt - rangeB.lt; + + return fromComparison || toComparison || 0; +}; + +function createArrayValuesHandler(sortBy: string, formatter: FieldFormat) { + return function (criteriaFn: CompareFn) { + return ( + rowA: Record, + rowB: Record, + direction: 'asc' | 'desc' + ) => { + // handle the direction with a multiply factor. + const directionFactor = direction === 'asc' ? 1 : -1; + // if either side of the comparison is an array, make it also the other one become one + // then perform an array comparison + if (Array.isArray(rowA[sortBy]) || Array.isArray(rowB[sortBy])) { + return ( + directionFactor * + compareArrays( + (Array.isArray(rowA[sortBy]) ? rowA[sortBy] : [rowA[sortBy]]) as T[], + (Array.isArray(rowB[sortBy]) ? rowB[sortBy] : [rowB[sortBy]]) as T[], + directionFactor, + formatter, + criteriaFn + ) + ); + } + return ( + directionFactor * + criteriaFn(rowA[sortBy] as T, rowB[sortBy] as T, directionFactor, formatter) + ); + }; + }; +} + +function getUndefinedHandler( + sortBy: string, + sortingCriteria: ( + rowA: Record, + rowB: Record, + directionFactor: 'asc' | 'desc' + ) => number +) { + return ( + rowA: Record, + rowB: Record, + direction: 'asc' | 'desc' + ) => { + const valueA = rowA[sortBy]; + const valueB = rowB[sortBy]; + if (valueA != null && valueB != null && !Number.isNaN(valueA) && !Number.isNaN(valueB)) { + return sortingCriteria(rowA, rowB, direction); + } + if (valueA == null || Number.isNaN(valueA)) { + return 1; + } + if (valueB == null || Number.isNaN(valueB)) { + return -1; + } + + return 0; + }; +} + +export function getSortingCriteria( + type: string | undefined, + sortBy: string, + formatter: FieldFormat +) { + const arrayValueHandler = createArrayValuesHandler(sortBy, formatter); + + if (['number', 'date'].includes(type || '')) { + return getUndefinedHandler(sortBy, arrayValueHandler(numberCompare)); + } + // this is a custom type, and can safely assume the gte and lt fields are all numbers or undefined + if (type === 'range') { + return getUndefinedHandler(sortBy, arrayValueHandler(rangeComparison)); + } + // IP have a special sorting + if (type === 'ip') { + return getUndefinedHandler(sortBy, arrayValueHandler(ipComparison)); + } + if (type === 'version') { + // do not wrap in undefined handler because of special invalid-case handling + return arrayValueHandler(versionComparison); + } + // use a string sorter for the rest + return getUndefinedHandler(sortBy, arrayValueHandler(stringComparison)); +} diff --git a/packages/kbn-sort-predicates/tsconfig.json b/packages/kbn-sort-predicates/tsconfig.json new file mode 100644 index 0000000000000..3bc215c57f5e7 --- /dev/null +++ b/packages/kbn-sort-predicates/tsconfig.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": [ + "jest", + "node", + ] + }, + "include": [ + "**/*.ts" + ], + "exclude": [ + "target/**/*" + ], + "kbn_references": [ + "@kbn/field-formats-plugin", + "@kbn/expressions-plugin" + ] +} diff --git a/packages/kbn-test-eui-helpers/index.ts b/packages/kbn-test-eui-helpers/index.ts new file mode 100644 index 0000000000000..7e514b179b9c4 --- /dev/null +++ b/packages/kbn-test-eui-helpers/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/rtl_helpers'; diff --git a/packages/kbn-test-eui-helpers/jest.config.js b/packages/kbn-test-eui-helpers/jest.config.js new file mode 100644 index 0000000000000..a902329d1426a --- /dev/null +++ b/packages/kbn-test-eui-helpers/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-test-eui-helpers'], +}; diff --git a/packages/kbn-test-eui-helpers/kibana.jsonc b/packages/kbn-test-eui-helpers/kibana.jsonc new file mode 100644 index 0000000000000..fc97c720f827d --- /dev/null +++ b/packages/kbn-test-eui-helpers/kibana.jsonc @@ -0,0 +1,6 @@ +{ + "type": "shared-common", + "id": "@kbn/test-eui-helpers", + "devOnly": true, + "owner": ["@elastic/kibana-visualizations"], +} diff --git a/packages/kbn-test-eui-helpers/package.json b/packages/kbn-test-eui-helpers/package.json new file mode 100644 index 0000000000000..fb416ef292622 --- /dev/null +++ b/packages/kbn-test-eui-helpers/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/test-eui-helpers", + "version": "1.0.0", + "private": true, + "license": "SSPL-1.0 OR Elastic License 2.0" +} \ No newline at end of file diff --git a/packages/kbn-test-eui-helpers/src/rtl_helpers.tsx b/packages/kbn-test-eui-helpers/src/rtl_helpers.tsx new file mode 100644 index 0000000000000..fc469d9cb234f --- /dev/null +++ b/packages/kbn-test-eui-helpers/src/rtl_helpers.tsx @@ -0,0 +1,84 @@ +/* + * 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 userEvent from '@testing-library/user-event'; +import { screen, within, fireEvent } from '@testing-library/react'; + +export const getButtonGroupInputValue = (testId: string) => () => { + const buttonGroup = screen.getByTestId(testId); + return within(buttonGroup).getByRole('button', { pressed: true }); +}; + +export class EuiSuperDatePickerTestHarness { + // From https://github.com/elastic/eui/blob/6a30eba7c2a154691c96a1d17c8b2f3506d351a3/src/components/date_picker/super_date_picker/super_date_picker.tsx#L222 + private static readonly dateFormat = 'MMM D, YYYY @ HH:mm:ss.SSS'; + + /** + * This method returns the currently selected commonly-used range as a string + * + * The empty string is returned if a commonly-used range is not currently selected + */ + public static get currentCommonlyUsedRange() { + return screen.queryByTestId('superDatePickerShowDatesButton')?.textContent ?? ''; + } + + /** + * This method returns the currently selected range as a pair of strings + */ + public static get currentRange() { + if (screen.queryByTestId('superDatePickerShowDatesButton')) { + // showing a commonly-used range + return { from: '', to: '' }; + } + + return { + from: screen.getByTestId('superDatePickerstartDatePopoverButton').textContent, + to: screen.getByTestId('superDatePickerendDatePopoverButton').textContent, + }; + } + + /** + * This method runs an assertion against the currently selected range using + * UNIX timestamps. + * + * NOTE: it does not (yet) support commonly-used (textual) ranges like "Last 15 minutes" + */ + public static assertCurrentRange(range: { from: number; to: number }, expect: jest.Expect) { + expect(EuiSuperDatePickerTestHarness.currentRange).toEqual({ + from: moment(range.from).format(EuiSuperDatePickerTestHarness.dateFormat), + to: moment(range.to).format(EuiSuperDatePickerTestHarness.dateFormat), + }); + } + + /** + * Opens the popover for the date picker + */ + static togglePopover() { + userEvent.click(screen.getByRole('button', { name: 'Date quick select' })); + } + + /** + * Selects a commonly-used range from the date picker (opens the popover if it's not already open) + */ + static async selectCommonlyUsedRange(label: string) { + if (!screen.queryByText('Commonly used')) this.togglePopover(); + + // Using fireEvent here because userEvent erroneously claims that + // pointer-events is set to 'none'. + // + // I have verified that this fixed on the latest version of the @testing-library/user-event package + fireEvent.click(await screen.findByText(label)); + } + + /** + * Activates the refresh button + */ + static refresh() { + userEvent.click(screen.getByRole('button', { name: 'Refresh' })); + } +} diff --git a/packages/kbn-test-eui-helpers/tsconfig.json b/packages/kbn-test-eui-helpers/tsconfig.json new file mode 100644 index 0000000000000..9f1c443c02ee8 --- /dev/null +++ b/packages/kbn-test-eui-helpers/tsconfig.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": ["jest", "node"] + }, + "include": [ + "**/*.ts", + "**/*.tsx", + ], + "kbn_references": [], + "exclude": [ + "target/**/*", + ], +} diff --git a/packages/kbn-test/index.ts b/packages/kbn-test/index.ts index e5409ee6ee485..8b5485f68baf9 100644 --- a/packages/kbn-test/index.ts +++ b/packages/kbn-test/index.ts @@ -13,7 +13,12 @@ export { startServersCli, startServers } from './src/functional_tests/start_serv // @internal export { runTestsCli, runTests } from './src/functional_tests/run_tests'; -export { SamlSessionManager, type SamlSessionManagerOptions, type HostOptions } from './src/auth'; +export { + SamlSessionManager, + type SamlSessionManagerOptions, + type HostOptions, + readRolesFromResource, +} from './src/auth'; export { runElasticsearch, runKibanaServer } from './src/functional_tests/lib'; export { getKibanaCliArg, getKibanaCliLoggers } from './src/functional_tests/lib/kibana_cli_args'; diff --git a/packages/kbn-test/jest-preset.js b/packages/kbn-test/jest-preset.js index 8d50a88e23073..d3795c775ea21 100644 --- a/packages/kbn-test/jest-preset.js +++ b/packages/kbn-test/jest-preset.js @@ -103,9 +103,9 @@ module.exports = { // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation transformIgnorePatterns: [ - // ignore all node_modules except monaco-editor and react-monaco-editor which requires babel transforms to handle dynamic import() + // ignore all node_modules except monaco-editor, monaco-yaml and react-monaco-editor which requires babel transforms to handle dynamic import() // since ESM modules are not natively supported in Jest yet (https://github.com/facebook/jest/issues/4842) - '[/\\\\]node_modules(?![\\/\\\\](byte-size|monaco-editor|monaco-yaml|vscode-languageserver-types|react-monaco-editor|d3-interpolate|d3-color|langchain|langsmith|@cfworker|gpt-tokenizer))[/\\\\].+\\.js$', + '[/\\\\]node_modules(?![\\/\\\\](byte-size|monaco-editor|monaco-yaml|monaco-languageserver-types|monaco-marker-data-provider|monaco-worker-manager|vscode-languageserver-types|react-monaco-editor|d3-interpolate|d3-color|langchain|langsmith|@cfworker|gpt-tokenizer))[/\\\\].+\\.js$', 'packages/kbn-pm/dist/index.js', '[/\\\\]node_modules(?![\\/\\\\](langchain|langsmith))/dist/[/\\\\].+\\.js$', '[/\\\\]node_modules(?![\\/\\\\](langchain|langsmith))/dist/util/[/\\\\].+\\.js$', @@ -124,4 +124,10 @@ module.exports = { watchPathIgnorePatterns: ['.*/__tmp__/.*'], resolver: '/packages/kbn-test/src/jest/resolver.js', + + // Workaround to "TypeError: Cannot assign to read only property 'structuredClone' of object '[object global]'" + // This happens when we run jest tests with --watch after node20+ + globals: { + structuredClone: {}, + }, }; diff --git a/packages/kbn-test/src/auth/helper.ts b/packages/kbn-test/src/auth/helper.ts index d13e3ef69f37b..8aa991c796f15 100644 --- a/packages/kbn-test/src/auth/helper.ts +++ b/packages/kbn-test/src/auth/helper.ts @@ -7,6 +7,8 @@ */ import * as fs from 'fs'; +import { extname } from 'path'; +import { load as loadYaml } from 'js-yaml'; import { Role, User } from './types'; export const readCloudUsersFromFile = (filePath: string): Array<[Role, User]> => { @@ -20,3 +22,15 @@ export const readCloudUsersFromFile = (filePath: string): Array<[Role, User]> => return Object.entries(JSON.parse(data)) as Array<[Role, User]>; }; + +export const readRolesFromResource = (resourcePath: string) => { + if (!fs.existsSync(resourcePath) || extname(resourcePath) !== '.yml') { + throw new Error(`${resourcePath} does not exist or not a yml file`); + } + const data = loadYaml(fs.readFileSync(resourcePath, 'utf8')); + if (typeof data === 'object' && data !== null) { + return Object.keys(data); + } else { + throw new Error(`expected ${resourcePath} file to parse to an object`); + } +}; diff --git a/packages/kbn-test/src/auth/index.ts b/packages/kbn-test/src/auth/index.ts index 00631c3ab2b0a..86a7f682b84f7 100644 --- a/packages/kbn-test/src/auth/index.ts +++ b/packages/kbn-test/src/auth/index.ts @@ -11,3 +11,5 @@ export { type SamlSessionManagerOptions, type HostOptions, } from './session_manager'; + +export { readRolesFromResource } from './helper'; diff --git a/packages/kbn-test/src/auth/saml_auth.ts b/packages/kbn-test/src/auth/saml_auth.ts index 996f16eace38a..f0c80911114d9 100644 --- a/packages/kbn-test/src/auth/saml_auth.ts +++ b/packages/kbn-test/src/auth/saml_auth.ts @@ -6,13 +6,18 @@ * Side Public License, v 1. */ -import { createSAMLResponse as createMockedSAMLResponse } from '@kbn/mock-idp-plugin/common'; +import { createSAMLResponse as createMockedSAMLResponse } from '@kbn/mock-idp-utils'; import { ToolingLog } from '@kbn/tooling-log'; import axios, { AxiosResponse } from 'axios'; import * as cheerio from 'cheerio'; import { Cookie, parse as parseCookie } from 'tough-cookie'; import Url from 'url'; -import { CloudSamlSessionParams, CreateSamlSessionParams, LocalSamlSessionParams } from './types'; +import { + CloudSamlSessionParams, + CreateSamlSessionParams, + LocalSamlSessionParams, + UserProfile, +} from './types'; export class Session { readonly cookie; @@ -68,11 +73,13 @@ const getCloudUrl = (hostname: string, pathname: string) => { const createCloudSession = async (params: CreateSamlSessionParams) => { const { hostname, email, password, log } = params; - const cloudLoginUrl = getCloudUrl(hostname, '/api/v1/users/_login'); - let sessionResponse: AxiosResponse; - try { - sessionResponse = await axios.request({ - url: cloudLoginUrl, + // remove after ms-104 is released + const deprecatedLoginUrl = getCloudUrl(hostname, '/api/v1/users/_login'); + const cloudLoginUrl = getCloudUrl(hostname, '/api/v1/saas/auth/_login'); + let sessionResponse: AxiosResponse | undefined; + const requestConfig = (cloudUrl: string) => { + return { + url: cloudUrl, method: 'post', data: { email, @@ -84,17 +91,26 @@ const createCloudSession = async (params: CreateSamlSessionParams) => { }, validateStatus: () => true, maxRedirects: 0, - }); + }; + }; + try { + sessionResponse = await axios.request(requestConfig(deprecatedLoginUrl)); } catch (ex) { - log.error('Failed to create the new cloud session'); - cleanException(cloudLoginUrl, ex); - throw ex; + log.error(`Failed to create the new cloud session with 'POST ${deprecatedLoginUrl}'`); + // no error on purpose + } + + if (!sessionResponse || sessionResponse?.status === 404) { + // Retrying with new cloud login endpoint + try { + sessionResponse = await axios.request(requestConfig(cloudLoginUrl)); + } catch (ex) { + log.error(`Failed to create the new cloud session with 'POST ${cloudLoginUrl}'`); + cleanException(cloudLoginUrl, ex); + throw ex; + } } - const firstName = sessionResponse?.data?.user?.data?.first_name ?? ''; - const lastName = sessionResponse?.data?.user?.data?.last_name ?? ''; - const firstLastNames = `${firstName} ${lastName}`.trim(); - const fullname = firstLastNames.length > 0 ? firstLastNames : email; const token = sessionResponse?.data?.token as string; if (!token) { log.error( @@ -104,7 +120,7 @@ const createCloudSession = async (params: CreateSamlSessionParams) => { ); throw new Error(`Unable to create Cloud session, token is missing.`); } - return { token, fullname }; + return token; }; const createSAMLRequest = async (kbnUrl: string, kbnVersion: string, log: ToolingLog) => { @@ -202,14 +218,43 @@ const finishSAMLHandshake = async ({ return cookie; }; +const getSecurityProfile = async ({ + kbnHost, + cookie, + log, +}: { + kbnHost: string; + cookie: Cookie; + log: ToolingLog; +}) => { + let meResponse: AxiosResponse; + const url = kbnHost + '/internal/security/me'; + try { + meResponse = (await axios.get(url, { + headers: { + Cookie: cookie.cookieString(), + 'x-elastic-internal-origin': 'Kibana', + 'content-type': 'application/json', + }, + })) as AxiosResponse; + } catch (ex) { + log.error('Failed to fetch user profile data'); + cleanException(url, ex); + throw ex; + } + + return meResponse.data; +}; + export const createCloudSAMLSession = async (params: CloudSamlSessionParams) => { const { email, password, kbnHost, kbnVersion, log } = params; const hostname = getCloudHostName(); - const { token, fullname } = await createCloudSession({ hostname, email, password, log }); + const token = await createCloudSession({ hostname, email, password, log }); const { location, sid } = await createSAMLRequest(kbnHost, kbnVersion, log); const samlResponse = await createSAMLResponse(location, token); const cookie = await finishSAMLHandshake({ kbnHost, samlResponse, sid, log }); - return new Session(cookie, email, fullname); + const userProfile = await getSecurityProfile({ kbnHost, cookie, log }); + return new Session(cookie, email, userProfile.full_name); }; export const createLocalSAMLSession = async (params: LocalSamlSessionParams) => { @@ -217,7 +262,7 @@ export const createLocalSAMLSession = async (params: LocalSamlSessionParams) => const samlResponse = await createMockedSAMLResponse({ kibanaUrl: kbnHost + '/api/security/saml/callback', username, - fullname, + full_name: fullname, email, roles: [role], }); diff --git a/packages/kbn-test/src/auth/session_manager.ts b/packages/kbn-test/src/auth/session_manager.ts index 2e498d2bc9c74..7e7b862aa84b2 100644 --- a/packages/kbn-test/src/auth/session_manager.ts +++ b/packages/kbn-test/src/auth/session_manager.ts @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import { SERVERLESS_ROLES_ROOT_PATH } from '@kbn/es'; import { REPO_ROOT } from '@kbn/repo-info'; import { ToolingLog } from '@kbn/tooling-log'; import { resolve } from 'path'; @@ -26,6 +27,7 @@ export interface HostOptions { export interface SamlSessionManagerOptions { hostOptions: HostOptions; isCloud: boolean; + supportedRoles?: string[]; log: ToolingLog; } @@ -40,6 +42,7 @@ export class SamlSessionManager { private readonly roleToUserMap: Map; private readonly sessionCache: Map; private readonly userRoleFilePath = resolve(REPO_ROOT, '.ftr', 'role_users.json'); + private readonly supportedRoles: string[]; constructor(options: SamlSessionManagerOptions) { this.isCloud = options.isCloud; @@ -59,6 +62,7 @@ export class SamlSessionManager { }); this.sessionCache = new Map(); this.roleToUserMap = new Map(); + this.supportedRoles = options.supportedRoles ?? []; } /** @@ -89,6 +93,15 @@ export class SamlSessionManager { return this.sessionCache.get(role)!; } + // Validate role before creating SAML session + if (this.supportedRoles.length && !this.supportedRoles.includes(role)) { + throw new Error( + `Role '${role}' is not defined in the supported list: ${this.supportedRoles.join( + ', ' + )}. Update roles resource file in ${SERVERLESS_ROLES_ROOT_PATH} to enable it for testing` + ); + } + let session: Session; if (this.isCloud) { diff --git a/packages/kbn-test/src/auth/sesson_manager.test.ts b/packages/kbn-test/src/auth/sesson_manager.test.ts index 88049acddb2e0..4332a3630bfe9 100644 --- a/packages/kbn-test/src/auth/sesson_manager.test.ts +++ b/packages/kbn-test/src/auth/sesson_manager.test.ts @@ -13,24 +13,13 @@ import { SamlSessionManager } from './session_manager'; import * as samlAuth from './saml_auth'; import * as helper from './helper'; import { Role, User } from './types'; +import { SERVERLESS_ROLES_ROOT_PATH } from '@kbn/es'; const log = new ToolingLog(); -const cookieInstance = Cookie.parse( - 'sid=kbn_cookie_value; Path=/; Expires=Wed, 01 Oct 2023 07:00:00 GMT' -)!; -const email = 'testuser@elastic.com'; -const fullname = 'Test User'; - -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(['admin', { email: 'admin@elastic.co', password: 'p1234' }]); +const supportedRoles = ['admin', 'editor', 'viewer']; +const roleViewer = 'viewer'; +const roleEditor = 'editor'; const createLocalSAMLSessionMock = jest.spyOn(samlAuth, 'createLocalSAMLSession'); const createCloudSAMLSessionMock = jest.spyOn(samlAuth, 'createCloudSAMLSession'); @@ -43,22 +32,18 @@ jest.mock('../kbn_client/kbn_client', () => { }); const get = jest.fn(); -beforeEach(() => { - jest.resetAllMocks(); - jest - .requireMock('../kbn_client/kbn_client') - .KbnClient.mockImplementation(() => ({ version: { get } })); - get.mockImplementationOnce(() => Promise.resolve('8.12.0')); - - createLocalSAMLSessionMock.mockResolvedValue(new Session(cookieInstance, email, fullname)); - createCloudSAMLSessionMock.mockResolvedValue( - new Session(cloudCookieInstance, cloudEmail, cloudFullname) - ); - readCloudUsersFromFileMock.mockReturnValue(cloudUsers); -}); - 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, email, fullname)); + }); + const hostOptions = { protocol: 'http' as 'http' | 'https', hostname: 'localhost', @@ -67,40 +52,97 @@ describe('SamlSessionManager', () => { password: 'changeme', }; const isCloud = false; + const samlSessionManagerOptions = { + hostOptions, + isCloud, + log, + supportedRoles, + }; + const email = 'testuser@elastic.com'; + const fullname = '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({ hostOptions, log, isCloud }); expect(samlSessionManager).toBeInstanceOf(SamlSessionManager); }); test(`'getSessionCookieForRole' should return the actual cookie value`, async () => { - const samlSessionManager = new SamlSessionManager({ hostOptions, log, isCloud }); - const cookie = await samlSessionManager.getSessionCookieForRole('tester'); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const cookie = await samlSessionManager.getSessionCookieForRole(roleViewer); expect(cookie).toBe(cookieInstance.value); }); test(`'getApiCredentialsForRole' should return {Cookie: }`, async () => { - const samlSessionManager = new SamlSessionManager({ hostOptions, log, isCloud }); - const credentials = await samlSessionManager.getApiCredentialsForRole('tester'); + 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({ hostOptions, log, isCloud }); - await samlSessionManager.getSessionCookieForRole('tester'); - await samlSessionManager.getSessionCookieForRole('admin'); - await samlSessionManager.getSessionCookieForRole('tester'); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await samlSessionManager.getSessionCookieForRole(roleViewer); + await samlSessionManager.getSessionCookieForRole(roleEditor); + await samlSessionManager.getSessionCookieForRole(roleViewer); expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(2); expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); }); test(`'getUserData' should return the correct email & fullname`, async () => { - const samlSessionManager = new SamlSessionManager({ hostOptions, log, isCloud }); - const data = await samlSessionManager.getUserData('tester'); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const data = await samlSessionManager.getUserData(roleViewer); expect(data).toEqual({ email, fullname }); }); + + test(`throws error when role is not in 'supportedRoles'`, async () => { + const nonExistingRole = 'tester'; + const expectedErrorMessage = `Role '${nonExistingRole}' is not defined in the supported list: ${supportedRoles.join( + ', ' + )}. Update roles resource file in ${SERVERLESS_ROLES_ROOT_PATH} to enable it for testing`; + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await expect(samlSessionManager.getSessionCookieForRole(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 samlSessionManager = new SamlSessionManager({ + hostOptions, + log, + isCloud, + }); + await samlSessionManager.getSessionCookieForRole(nonExistingRole); + await samlSessionManager.getApiCredentialsForRole(nonExistingRole); + await samlSessionManager.getUserData(nonExistingRole); + expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(1); + expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(0); + }); }); describe('for cloud session', () => { + 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, cloudFullname) + ); + readCloudUsersFromFileMock.mockReturnValue(cloudUsers); + }); + const hostOptions = { protocol: 'https' as 'http' | 'https', hostname: 'cloud', @@ -108,44 +150,85 @@ describe('SamlSessionManager', () => { password: 'changeme', }; const isCloud = true; + const samlSessionManagerOptions = { + hostOptions, + isCloud, + log, + supportedRoles, + }; + 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' }]); + test('should create an instance of SamlSessionManager', () => { - const samlSessionManager = new SamlSessionManager({ hostOptions, log, isCloud }); + const samlSessionManager = new SamlSessionManager({ + hostOptions, + log, + isCloud, + }); expect(samlSessionManager).toBeInstanceOf(SamlSessionManager); }); test(`'getSessionCookieForRole' should return the actual cookie value`, async () => { - const samlSessionManager = new SamlSessionManager({ hostOptions, log, isCloud }); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); createCloudSAMLSessionMock.mockResolvedValue( new Session(cloudCookieInstance, cloudEmail, cloudFullname) ); - const cookie = await samlSessionManager.getSessionCookieForRole('viewer'); + const cookie = await samlSessionManager.getSessionCookieForRole(roleViewer); expect(cookie).toBe(cloudCookieInstance.value); }); test(`'getApiCredentialsForRole' should return {Cookie: }`, async () => { - const samlSessionManager = new SamlSessionManager({ hostOptions, log, isCloud }); - const credentials = await samlSessionManager.getApiCredentialsForRole('viewer'); + 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({ hostOptions, log, isCloud }); - await samlSessionManager.getSessionCookieForRole('viewer'); - await samlSessionManager.getSessionCookieForRole('admin'); - await samlSessionManager.getSessionCookieForRole('viewer'); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await samlSessionManager.getSessionCookieForRole(roleViewer); + await samlSessionManager.getSessionCookieForRole(roleEditor); + await samlSessionManager.getSessionCookieForRole(roleViewer); expect(createLocalSAMLSessionMock.mock.calls).toHaveLength(0); expect(createCloudSAMLSessionMock.mock.calls).toHaveLength(2); }); test(`'getUserData' should return the correct email & fullname`, async () => { - const samlSessionManager = new SamlSessionManager({ hostOptions, log, isCloud }); - const data = await samlSessionManager.getUserData('viewer'); + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + const data = await samlSessionManager.getUserData(roleViewer); expect(data).toEqual({ email: cloudEmail, fullname: cloudFullname }); }); - test(`throws error when roles does not exist`, async () => { + test(`throws error for non-existing role when 'supportedRoles' is defined`, async () => { const nonExistingRole = 'tester'; - const samlSessionManager = new SamlSessionManager({ hostOptions, log, isCloud }); + const expectedErrorMessage = `Role '${nonExistingRole}' is not defined in the supported list: ${supportedRoles.join( + ', ' + )}. Update roles resource file in ${SERVERLESS_ROLES_ROOT_PATH} to enable it for testing`; + const samlSessionManager = new SamlSessionManager(samlSessionManagerOptions); + await expect(samlSessionManager.getSessionCookieForRole(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({ + hostOptions, + log, + isCloud, + }); await expect(samlSessionManager.getSessionCookieForRole(nonExistingRole)).rejects.toThrow( `User with '${nonExistingRole}' role is not defined` ); @@ -157,5 +240,20 @@ describe('SamlSessionManager', () => { ); 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.getSessionCookieForRole(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/types.ts b/packages/kbn-test/src/auth/types.ts index 45e5b78b0ba38..17b5183ab9967 100644 --- a/packages/kbn-test/src/auth/types.ts +++ b/packages/kbn-test/src/auth/types.ts @@ -38,3 +38,12 @@ export interface User { } export type Role = string; + +export interface UserProfile { + username: string; + roles: string[]; + full_name: string; + email: string; + enabled: boolean; + elastic_cloud_user: boolean; +} diff --git a/packages/kbn-test/src/es/test_es_cluster.ts b/packages/kbn-test/src/es/test_es_cluster.ts index 84c2da1e52f80..5c1a85cd776e7 100644 --- a/packages/kbn-test/src/es/test_es_cluster.ts +++ b/packages/kbn-test/src/es/test_es_cluster.ts @@ -73,7 +73,7 @@ export interface CreateTestEsClusterOptions { esFrom?: string; esServerlessOptions?: Pick< ServerlessOptions, - 'image' | 'tag' | 'resources' | 'host' | 'kibanaUrl' + 'image' | 'tag' | 'resources' | 'host' | 'kibanaUrl' | 'projectType' >; esJavaOpts?: string; /** diff --git a/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts b/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts index 4f01321b82391..99a2b6b9275e2 100644 --- a/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts +++ b/packages/kbn-test/src/functional_tests/lib/run_elasticsearch.ts @@ -11,7 +11,7 @@ import { resolve } from 'path'; import type { ToolingLog } from '@kbn/tooling-log'; import getPort from 'get-port'; import { REPO_ROOT } from '@kbn/repo-info'; -import type { ArtifactLicense } from '@kbn/es'; +import type { ArtifactLicense, ServerlessProjectType } from '@kbn/es'; import type { Config } from '../../functional_test_runner'; import { createTestEsCluster, esTestConfig } from '../../es'; @@ -184,8 +184,24 @@ function getESServerlessOptions( const serverlessHost: string | undefined = config.has('esServerlessOptions.host') && config.get('esServerlessOptions.host'); + const kbnServerArgs = + (config.has('kbnTestServer.serverArgs') && + (config.get('kbnTestServer.serverArgs') as string[])) || + []; + + const projectTypeFromArgs = kbnServerArgs + .filter((arg) => arg.startsWith('--serverless')) + .reduce((acc, arg) => { + const match = arg.match(/--serverless[=\s](\w+)/); + return acc + (match ? match[1] : ''); + }, ''); + const projectType = projectTypeFromArgs.length + ? (projectTypeFromArgs as ServerlessProjectType) + : undefined; + const commonOptions = { host: serverlessHost, + projectType, resources: serverlessResources, kibanaUrl: Url.format({ protocol: config.get('servers.kibana.protocol'), diff --git a/packages/kbn-test/tsconfig.json b/packages/kbn-test/tsconfig.json index fa22159f0b387..00cc594809e36 100644 --- a/packages/kbn-test/tsconfig.json +++ b/packages/kbn-test/tsconfig.json @@ -3,7 +3,10 @@ "compilerOptions": { "outDir": "target/types", "stripInternal": true, - "types": ["jest", "node"] + "types": [ + "jest", + "node" + ] }, "include": [ "**/*.ts", @@ -32,7 +35,7 @@ "@kbn/babel-register", "@kbn/repo-packages", "@kbn/core-saved-objects-api-server", - "@kbn/mock-idp-plugin", + "@kbn/mock-idp-utils", "@kbn/code-owners", ] } diff --git a/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx b/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx index 4114ab021bf71..46af131f573f4 100644 --- a/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx +++ b/packages/kbn-text-based-editor/src/esql_documentation_sections.tsx @@ -1237,25 +1237,24 @@ ROW E() }, { label: i18n.translate( - 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.floorFunction', + 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.endsWithFunction', { - defaultMessage: 'FLOOR', + defaultMessage: 'ENDS_WITH', } ), description: ( - ), - }, - { - label: i18n.translate( - 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.isInfiniteFunction', - { - defaultMessage: 'IS_INFINITE', - } - ), - description: ( - - ), - }, - { - label: i18n.translate( - 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.isNanFunction', - { - defaultMessage: 'IS_NAN', - } - ), - description: ( - ), }, + { + label: i18n.translate( + 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.toCartesianpointFunction', + { + defaultMessage: 'TO_CARTESIANPOINT', + } + ), + description: ( + + ), + }, { label: i18n.translate( 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.toDatetimeFunction', @@ -2489,6 +2437,38 @@ Alias: TO_DBL /> ), }, + { + label: i18n.translate( + 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.toGeopointFunction', + { + defaultMessage: 'TO_GEOPOINT', + } + ), + description: ( + + ), + }, { label: i18n.translate( 'textBasedEditor.query.textBasedLanguagesEditor.documentationESQL.toIntegerFunction', diff --git a/packages/kbn-text-based-editor/src/text_based_languages_editor.tsx b/packages/kbn-text-based-editor/src/text_based_languages_editor.tsx index 24966c78960bb..3546fcec41af4 100644 --- a/packages/kbn-text-based-editor/src/text_based_languages_editor.tsx +++ b/packages/kbn-text-based-editor/src/text_based_languages_editor.tsx @@ -39,8 +39,7 @@ import { EuiOutsideClickDetector, EuiToolTip, } from '@elastic/eui'; -import { CodeEditor } from '@kbn/kibana-react-plugin/public'; -import type { CodeEditorProps } from '@kbn/kibana-react-plugin/public'; +import { CodeEditor, CodeEditorProps } from '@kbn/code-editor'; import { textBasedLanguagedEditorStyles, diff --git a/packages/kbn-text-based-editor/tsconfig.json b/packages/kbn-text-based-editor/tsconfig.json index 72240c8aa060d..1c71fc544155d 100644 --- a/packages/kbn-text-based-editor/tsconfig.json +++ b/packages/kbn-text-based-editor/tsconfig.json @@ -24,7 +24,8 @@ "@kbn/expressions-plugin", "@kbn/data-views-plugin", "@kbn/index-management-plugin", - "@kbn/visualization-utils" + "@kbn/visualization-utils", + "@kbn/code-editor", ], "exclude": [ "target/**/*", diff --git a/packages/kbn-typed-react-router-config/src/use_params.ts b/packages/kbn-typed-react-router-config/src/use_params.ts index 0468eb9566236..2ecb417099df0 100644 --- a/packages/kbn-typed-react-router-config/src/use_params.ts +++ b/packages/kbn-typed-react-router-config/src/use_params.ts @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -import { Location } from 'history'; +import { useMemo } from 'react'; import { useLocation } from 'react-router-dom'; import { useRouter } from './use_router'; @@ -23,9 +23,9 @@ export function useParams(...args: any[]) { args.pop(); } - const paths = args as string[]; - - const getParamsArgs = [...paths, location, optional] as [never, Location, boolean]; - - return router.getParams(...getParamsArgs); + return useMemo(() => { + // @ts-expect-error + return router.getParams(...args, location, optional); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [router, ...args, location, optional]); } diff --git a/packages/kbn-ui-shared-deps-src/BUILD.bazel b/packages/kbn-ui-shared-deps-src/BUILD.bazel index cd97c193f9f86..fd93f01a0eed5 100644 --- a/packages/kbn-ui-shared-deps-src/BUILD.bazel +++ b/packages/kbn-ui-shared-deps-src/BUILD.bazel @@ -16,6 +16,7 @@ webpack_cli( "@npm//babel-loader", "@npm//css-loader", "@npm//url-loader", + "@npm//@babel/plugin-transform-numeric-separator", "//packages/kbn-ui-shared-deps-npm", "//packages/kbn-babel-register", "//packages/kbn-babel-preset", @@ -35,6 +36,7 @@ webpack_cli( "//packages/kbn-peggy-loader", "//packages/shared-ux/error_boundary", "//packages/kbn-rison", + "//packages/shared-ux/code_editor/impl:code_editor", ], output_dir = True, args = [ diff --git a/packages/kbn-ui-shared-deps-src/src/definitions.js b/packages/kbn-ui-shared-deps-src/src/definitions.js index 9ae258dca6bc8..7480303087b6c 100644 --- a/packages/kbn-ui-shared-deps-src/src/definitions.js +++ b/packages/kbn-ui-shared-deps-src/src/definitions.js @@ -98,6 +98,7 @@ const externals = { classnames: '__kbnSharedDeps__.Classnames', '@tanstack/react-query': '__kbnSharedDeps__.ReactQuery', '@tanstack/react-query-devtools': '__kbnSharedDeps__.ReactQueryDevtools', + '@kbn/code-editor': '__kbnSharedDeps__.KbnCodeEditor', }; module.exports = { distDir, jsFilename, cssDistFilename, externals }; diff --git a/packages/kbn-ui-shared-deps-src/src/entry.js b/packages/kbn-ui-shared-deps-src/src/entry.js index 6ba856cbbc2d1..d0585d0cacc04 100644 --- a/packages/kbn-ui-shared-deps-src/src/entry.js +++ b/packages/kbn-ui-shared-deps-src/src/entry.js @@ -74,3 +74,4 @@ export const History = require('history'); export const Classnames = require('classnames'); export const ReactQuery = require('@tanstack/react-query'); export const ReactQueryDevtools = require('@tanstack/react-query-devtools'); +export const KbnCodeEditor = require('@kbn/code-editor'); diff --git a/packages/kbn-ui-shared-deps-src/webpack.config.js b/packages/kbn-ui-shared-deps-src/webpack.config.js index ce6d6be6fa448..2f81dc5e1d8e5 100644 --- a/packages/kbn-ui-shared-deps-src/webpack.config.js +++ b/packages/kbn-ui-shared-deps-src/webpack.config.js @@ -84,6 +84,23 @@ module.exports = { presets: [require.resolve('@kbn/babel-preset/webpack_preset')], }, }, + { + /** + * further process the modules exported by both monaco-editor and monaco-yaml, because; + * 1). they both use non-standard language APIs + * 2). monaco-yaml exports it's src as is see, https://www.npmjs.com/package/monaco-yaml#does-it-work-without-a-bundler + */ + test: /(monaco-editor\/esm\/vs\/|monaco-languageserver-types|monaco-marker-data-provider|monaco-worker-manager).*(t|j)sx?$/, + use: { + loader: 'babel-loader', + options: { + babelrc: false, + envName: process.env.NODE_ENV || 'development', + presets: [require.resolve('@kbn/babel-preset/webpack_preset')], + plugins: [require.resolve('@babel/plugin-transform-numeric-separator')], + }, + }, + }, ], }, diff --git a/packages/kbn-unified-data-table/src/components/__snapshots__/data_table_columns.test.tsx.snap b/packages/kbn-unified-data-table/src/components/__snapshots__/data_table_columns.test.tsx.snap index d5cbd1a0d408e..2a80fd57f6ecd 100644 --- a/packages/kbn-unified-data-table/src/components/__snapshots__/data_table_columns.test.tsx.snap +++ b/packages/kbn-unified-data-table/src/components/__snapshots__/data_table_columns.test.tsx.snap @@ -1,6 +1,6 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Data table columns column tokens returns eui grid columns with tokens 1`] = ` +exports[`Data table columns Textbased languages grid columns returns columns in correct format when column customisation is provided 1`] = ` Array [ Object { "actions": Object { @@ -34,7 +34,10 @@ Array [ "size": "xs", }, ], - "showHide": false, + "showHide": Object { + "iconType": "cross", + "label": "Remove column", + }, "showMoveLeft": true, "showMoveRight": true, }, @@ -43,29 +46,13 @@ Array [ [Function], [Function], ], - "display":
- - - timestamp - - - - -
, - "displayAsText": "timestamp", - "id": "timestamp", - "initialWidth": 212, + "display": + test + , + "displayAsText": "extension", + "id": "extension", "isSortable": true, - "schema": "datetime", + "schema": "string", "visibleCellActions": undefined, }, Object { @@ -107,14 +94,63 @@ Array [ "showMoveLeft": true, "showMoveRight": true, }, + "cellActions": Array [ + [Function], + ], + "display": undefined, + "displayAsText": "message", + "id": "message", + "isSortable": true, + "schema": "string", + "visibleCellActions": undefined, + }, +] +`; + +exports[`Data table columns column tokens returns eui grid columns with tokens 1`] = ` +Array [ + Object { + "actions": Object { + "additional": Array [ + Object { + "data-test-subj": "gridCopyColumnNameToClipBoardButton", + "iconProps": Object { + "size": "m", + }, + "iconType": "copyClipboard", + "label": , + "onClick": [Function], + "size": "xs", + }, + Object { + "data-test-subj": "gridCopyColumnValuesToClipBoardButton", + "iconProps": Object { + "size": "m", + }, + "iconType": "copyClipboard", + "label": , + "onClick": [Function], + "size": "xs", + }, + ], + "showHide": false, + "showMoveLeft": true, + "showMoveRight": true, + }, "cellActions": Array [ [Function], [Function], [Function], ], - "display": , - "displayAsText": "extension", - "id": "extension", - "isSortable": false, - "schema": "string", + "displayAsText": "timestamp", + "id": "timestamp", + "initialWidth": 212, + "isSortable": true, + "schema": "datetime", "visibleCellActions": undefined, }, Object { @@ -394,10 +442,12 @@ Array [ }, "cellActions": Array [ [Function], + [Function], + [Function], ], "display": , - "displayAsText": "message", - "id": "message", + "displayAsText": "extension", + "id": "extension", "isSortable": false, "schema": "string", "visibleCellActions": undefined, }, -] -`; - -exports[`Data table columns column tokens returns eui grid columns with tokens for custom column types 1`] = ` -Array [ Object { "actions": Object { "additional": Array [ @@ -682,18 +728,10 @@ Array [ }, "cellActions": Array [ [Function], - [Function], - [Function], ], "display": , - "displayAsText": "extension", - "id": "extension", + "displayAsText": "message", + "id": "message", "isSortable": false, - "schema": "numeric", + "schema": "string", "visibleCellActions": undefined, }, +] +`; + +exports[`Data table columns column tokens returns eui grid columns with tokens for custom column types 1`] = ` +Array [ Object { "actions": Object { "additional": Array [ @@ -1000,10 +1017,12 @@ Array [ }, "cellActions": Array [ [Function], + [Function], + [Function], ], "display": , - "displayAsText": "message", - "id": "message", - "isSortable": false, - "schema": "kibana-json", - "visibleCellActions": undefined, - }, -] -`; - -exports[`Data table columns getEuiGridColumns returns eui grid columns showing default columns 1`] = ` -Array [ - Object { - "actions": Object { - "additional": Array [ - Object { - "data-test-subj": "gridCopyColumnNameToClipBoardButton", - "iconProps": Object { - "size": "m", - }, - "iconType": "copyClipboard", - "label": , - "onClick": [Function], - "size": "xs", - }, - Object { - "data-test-subj": "gridCopyColumnValuesToClipBoardButton", - "iconProps": Object { - "size": "m", - }, - "iconType": "copyClipboard", - "label": , - "onClick": [Function], - "size": "xs", - }, - ], - "showHide": false, - "showMoveLeft": false, - "showMoveRight": false, - }, - "cellActions": Array [ - [Function], - [Function], - [Function], - ], - "display": undefined, "displayAsText": "extension", "id": "extension", "isSortable": false, - "schema": "string", + "schema": "numeric", "visibleCellActions": undefined, }, Object { @@ -1360,48 +1327,418 @@ Array [ "size": "xs", }, ], - "showHide": false, - "showMoveLeft": false, - "showMoveRight": false, + "showHide": Object { + "iconType": "cross", + "label": "Remove column", + }, + "showMoveLeft": true, + "showMoveRight": true, }, "cellActions": Array [ [Function], ], - "display": undefined, - "displayAsText": "message", - "id": "message", - "isSortable": false, - "schema": "string", - "visibleCellActions": undefined, - }, -] -`; - -exports[`Data table columns getEuiGridColumns returns eui grid columns with time column 1`] = ` -Array [ - Object { - "actions": Object { - "additional": Array [ + "display": , - "onClick": [Function], - "size": "xs", - }, + "extension": "number", + "message": "keyword", + } + } + dataView={ Object { - "data-test-subj": "gridCopyColumnValuesToClipBoardButton", - "iconProps": Object { - "size": "m", - }, - "iconType": "copyClipboard", + "docvalueFields": Array [], + "fields": Array [ + Object { + "filterable": true, + "name": "_index", + "scripted": false, + "type": "string", + }, + Object { + "aggregatable": true, + "displayName": "timestamp", + "filterable": true, + "name": "timestamp", + "scripted": false, + "sortable": true, + "type": "date", + }, + Object { + "displayName": "message", + "filterable": false, + "name": "message", + "scripted": false, + "type": "string", + }, + Object { + "aggregatable": true, + "displayName": "extension", + "filterable": true, + "name": "extension", + "scripted": false, + "type": "string", + }, + Object { + "aggregatable": true, + "displayName": "bytes", + "filterable": true, + "name": "bytes", + "scripted": false, + "type": "number", + }, + Object { + "displayName": "scripted", + "filterable": false, + "name": "scripted", + "scripted": true, + "type": "number", + }, + ], + "getComputedFields": [Function], + "getFieldByName": [MockFunction] { + "calls": Array [ + Array [ + "extension", + ], + Array [ + "message", + ], + Array [ + "timestamp", + ], + Array [ + "extension", + ], + Array [ + "message", + ], + Array [ + "timestamp", + ], + Array [ + "extension", + ], + Array [ + "message", + ], + Array [ + "timestamp", + ], + Array [ + "extension", + ], + Array [ + "message", + ], + Array [ + "extension", + ], + Array [ + "message", + ], + ], + "results": Array [ + Object { + "type": "return", + "value": Object { + "aggregatable": true, + "displayName": "extension", + "filterable": true, + "name": "extension", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "displayName": "message", + "filterable": false, + "name": "message", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "aggregatable": true, + "displayName": "timestamp", + "filterable": true, + "name": "timestamp", + "scripted": false, + "sortable": true, + "type": "date", + }, + }, + Object { + "type": "return", + "value": Object { + "aggregatable": true, + "displayName": "extension", + "filterable": true, + "name": "extension", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "displayName": "message", + "filterable": false, + "name": "message", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "aggregatable": true, + "displayName": "timestamp", + "filterable": true, + "name": "timestamp", + "scripted": false, + "sortable": true, + "type": "date", + }, + }, + Object { + "type": "return", + "value": Object { + "aggregatable": true, + "displayName": "extension", + "filterable": true, + "name": "extension", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "displayName": "message", + "filterable": false, + "name": "message", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "aggregatable": true, + "displayName": "timestamp", + "filterable": true, + "name": "timestamp", + "scripted": false, + "sortable": true, + "type": "date", + }, + }, + Object { + "type": "return", + "value": Object { + "aggregatable": true, + "displayName": "extension", + "filterable": true, + "name": "extension", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "displayName": "message", + "filterable": false, + "name": "message", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "aggregatable": true, + "displayName": "extension", + "filterable": true, + "name": "extension", + "scripted": false, + "type": "string", + }, + }, + Object { + "type": "return", + "value": Object { + "displayName": "message", + "filterable": false, + "name": "message", + "scripted": false, + "type": "string", + }, + }, + ], + }, + "getFormatterForField": [MockFunction], + "getIndexPattern": [Function], + "getName": [Function], + "getSourceFiltering": [Function], + "getTimeField": [Function], + "id": "index-pattern-with-timefield-id", + "isPersisted": [Function], + "isTimeBased": [Function], + "isTimeNanosBased": [Function], + "metaFields": Array [ + "_index", + "_score", + ], + "name": "index-pattern-with-timefield", + "timeFieldName": "timestamp", + "title": "index-pattern-with-timefield-title", + "toMinimalSpec": [Function], + "toSpec": [Function], + "type": "default", + } + } + showColumnTokens={true} + />, + "displayAsText": "message", + "id": "message", + "isSortable": false, + "schema": "kibana-json", + "visibleCellActions": undefined, + }, +] +`; + +exports[`Data table columns getEuiGridColumns returns eui grid columns showing default columns 1`] = ` +Array [ + Object { + "actions": Object { + "additional": Array [ + Object { + "data-test-subj": "gridCopyColumnNameToClipBoardButton", + "iconProps": Object { + "size": "m", + }, + "iconType": "copyClipboard", + "label": , + "onClick": [Function], + "size": "xs", + }, + Object { + "data-test-subj": "gridCopyColumnValuesToClipBoardButton", + "iconProps": Object { + "size": "m", + }, + "iconType": "copyClipboard", + "label": , + "onClick": [Function], + "size": "xs", + }, + ], + "showHide": false, + "showMoveLeft": false, + "showMoveRight": false, + }, + "cellActions": Array [ + [Function], + [Function], + [Function], + ], + "display": undefined, + "displayAsText": "extension", + "id": "extension", + "isSortable": false, + "schema": "string", + "visibleCellActions": undefined, + }, + Object { + "actions": Object { + "additional": Array [ + Object { + "data-test-subj": "gridCopyColumnNameToClipBoardButton", + "iconProps": Object { + "size": "m", + }, + "iconType": "copyClipboard", + "label": , + "onClick": [Function], + "size": "xs", + }, + Object { + "data-test-subj": "gridCopyColumnValuesToClipBoardButton", + "iconProps": Object { + "size": "m", + }, + "iconType": "copyClipboard", + "label": , + "onClick": [Function], + "size": "xs", + }, + ], + "showHide": false, + "showMoveLeft": false, + "showMoveRight": false, + }, + "cellActions": Array [ + [Function], + ], + "display": undefined, + "displayAsText": "message", + "id": "message", + "isSortable": false, + "schema": "string", + "visibleCellActions": undefined, + }, +] +`; + +exports[`Data table columns getEuiGridColumns returns eui grid columns with time column 1`] = ` +Array [ + Object { + "actions": Object { + "additional": Array [ + Object { + "data-test-subj": "gridCopyColumnNameToClipBoardButton", + "iconProps": Object { + "size": "m", + }, + "iconType": "copyClipboard", + "label": , + "onClick": [Function], + "size": "xs", + }, + Object { + "data-test-subj": "gridCopyColumnValuesToClipBoardButton", + "iconProps": Object { + "size": "m", + }, + "iconType": "copyClipboard", "label": - - - timestamp - - - - -
, + "display": , "displayAsText": "timestamp", "id": "timestamp", "initialWidth": 212, @@ -1591,24 +2070,208 @@ Array [ [Function], [Function], ], - "display":
- - - timestamp - - - - -
, + "display": , "displayAsText": "timestamp", "id": "timestamp", "initialWidth": 212, diff --git a/packages/kbn-unified-data-table/src/components/column_header_truncate_container.tsx b/packages/kbn-unified-data-table/src/components/column_header_truncate_container.tsx new file mode 100644 index 0000000000000..c8e79c5220a59 --- /dev/null +++ b/packages/kbn-unified-data-table/src/components/column_header_truncate_container.tsx @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React from 'react'; +import { EuiTextBlockTruncate } from '@elastic/eui'; +import { css } from '@emotion/react'; +import { euiThemeVars } from '@kbn/ui-theme'; + +const ColumnHeaderTruncateContainer = ({ + headerRowHeight = 1, + children, +}: { + headerRowHeight: number; + children: React.ReactNode; +}) => { + return ( + + {children} + + ); +}; + +// eslint-disable-next-line import/no-default-export +export default ColumnHeaderTruncateContainer; diff --git a/packages/kbn-unified-data-table/src/components/data_table.scss b/packages/kbn-unified-data-table/src/components/data_table.scss index 2f614f1133bb1..011c8f7499547 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.scss +++ b/packages/kbn-unified-data-table/src/components/data_table.scss @@ -36,18 +36,28 @@ border-top: $euiBorderThin; } + .euiDataGridHeaderCell { + align-items: start; + } + .euiDataGrid--headerUnderline .euiDataGridHeaderCell { border-bottom: $euiBorderThin; } + .euiDataGridRowCell--controlColumn:hover::after, + .euiDataGridRowCell--controlColumn:focus::after, + .euiDataGridRowCell--controlColumn.euiDataGridRowCell--open::after { + border-color: transparent; + } + + .euiDataGridRowCell--controlColumn .euiDataGridRowCell__content, .euiDataGridRowCell.euiDataGridRowCell--controlColumn[data-gridcell-column-id='openDetails'], .euiDataGridRowCell.euiDataGridRowCell--controlColumn[data-gridcell-column-id='select'] { padding-left: 0; padding-right: 0; } - .euiDataGrid--rowHoverHighlight .euiDataGridRow:hover, - .euiDataGrid--rowHoverHighlight .euiDataGridRow:hover .euiDataGridRowCell__actions--overlay { + .euiDataGrid--rowHoverHighlight .euiDataGridRow:hover { background-color: tintOrShade($euiColorLightShade, 50%, 0); } @@ -55,8 +65,8 @@ background-color: transparent; // otherwise the grid scrollbar border visually conflicts with the grid toolbar controls } - .euiDataGridRowCell__autoHeight, - .euiDataGridRowCell__lineCountHeight { + .euiDataGridRowCell__content--autoHeight, + .euiDataGridRowCell__content--lineCountHeight { white-space: pre-wrap; } } @@ -67,22 +77,11 @@ min-height: 0; } -.unifiedDataTable__flyoutHeader { - white-space: nowrap; -} - -.unifiedDataTable__flyoutDocumentNavigation { - justify-content: flex-end; -} - // We only truncate if the cell is not a control column. .euiDataGridHeader { .euiDataGridHeaderCell__content { - @include euiTextTruncate; - overflow: hidden; white-space: pre-wrap; - flex-grow: 1; } .euiDataGridHeaderCell__popover { @@ -114,15 +113,15 @@ .unifiedDataTable__rowControl { // fine-tuning the vertical alignment with the text for any row height setting - margin-top: -3px; - .euiDataGridRowCell__defaultHeight & { // "Single line" row height setting + margin-top: -$euiSizeXS; + .euiDataGridRowCell__content--defaultHeight & { // "Single line" row height setting margin-top: 0; } } .unifiedDataTable__descriptionList { // force the content truncation when "Single line" row height setting is active - .euiDataGridRowCell__defaultHeight & { + .euiDataGridRowCell__content--defaultHeight & { -webkit-line-clamp: 1; display: -webkit-box; -webkit-box-orient: vertical; 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 5e9168f62946a..33ff451adc972 100644 --- a/packages/kbn-unified-data-table/src/components/data_table.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table.tsx @@ -26,7 +26,6 @@ import { EuiDataGridInMemory, EuiDataGridControlColumn, EuiDataGridCustomBodyProps, - EuiDataGridCellValueElementProps, EuiDataGridCustomToolbarProps, EuiDataGridToolBarVisibilityOptions, EuiDataGridToolBarVisibilityDisplaySelectorOptions, @@ -47,10 +46,12 @@ import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; 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 type { +import { UnifiedDataTableSettings, ValueToStringConverter, DataTableColumnTypes, + CustomCellRenderer, + CustomGridColumnsConfiguration, } from '../types'; import { getDisplayedColumns } from '../utils/columns'; import { convertValueToString } from '../utils/convert_value_to_string'; @@ -126,6 +127,10 @@ export interface UnifiedDataTableProps { * Field tokens could be rendered in column header next to the field name. */ showColumnTokens?: boolean; + /** + * Determines number of rows of a column header + */ + headerRowHeight?: number; /** * If set, the given document is displayed in a flyout */ @@ -324,10 +329,11 @@ export interface UnifiedDataTableProps { /** * An optional settings for a specified fields rendering like links. Applied only for the listed fields rendering. */ - externalCustomRenderers?: Record< - string, - (props: EuiDataGridCellValueElementProps) => React.ReactNode - >; + externalCustomRenderers?: CustomCellRenderer; + /** + * An optional settings for customising the column + */ + customGridColumnsConfiguration?: CustomGridColumnsConfiguration; /** * Name of the UnifiedDataTable consumer component or application */ @@ -355,6 +361,7 @@ export const UnifiedDataTable = ({ columns, columnTypes, showColumnTokens, + headerRowHeight, controlColumnIds = CONTROL_COLUMN_IDS_DEFAULT, dataView, loadingState, @@ -404,6 +411,7 @@ export const UnifiedDataTable = ({ componentsTourSteps, gridStyleOverride, rowLineHeightOverride, + customGridColumnsConfiguration, }: UnifiedDataTableProps) => { const { fieldFormats, toastNotifications, dataViewFieldEditor, uiSettings, storage, data } = services; @@ -665,6 +673,8 @@ export const UnifiedDataTable = ({ visibleCellActions, columnTypes, showColumnTokens, + headerRowHeight, + customGridColumnsConfiguration, }), [ onFilter, @@ -684,6 +694,8 @@ export const UnifiedDataTable = ({ visibleCellActions, columnTypes, showColumnTokens, + headerRowHeight, + customGridColumnsConfiguration, ] ); diff --git a/packages/kbn-unified-data-table/src/components/data_table_cell_value.tsx b/packages/kbn-unified-data-table/src/components/data_table_cell_value.tsx new file mode 100644 index 0000000000000..cbebecbd1248f --- /dev/null +++ b/packages/kbn-unified-data-table/src/components/data_table_cell_value.tsx @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 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 DataTablePopoverCellValue = ({ children }: { children: React.ReactNode }) => { + return {children}; +}; + +// eslint-disable-next-line import/no-default-export +export default DataTablePopoverCellValue; diff --git a/packages/kbn-unified-data-table/src/components/data_table_column_header.test.tsx b/packages/kbn-unified-data-table/src/components/data_table_column_header.test.tsx index a3dbf6f895027..2420b1508cbf5 100644 --- a/packages/kbn-unified-data-table/src/components/data_table_column_header.test.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table_column_header.test.tsx @@ -66,6 +66,7 @@ describe('DataTableColumnHeader', function () { columnName="bytes" columnDisplayName="bytesDisplayName" dataView={stubLogstashDataView} + showColumnTokens /> ); expect(component.text()).toBe('NumberbytesDisplayName'); @@ -81,6 +82,7 @@ describe('DataTableColumnHeader', function () { bytes: 'keyword', }} dataView={stubLogstashDataView} + showColumnTokens /> ); expect(component.text()).toBe('KeywordbytesDisplayName'); @@ -93,6 +95,7 @@ describe('DataTableColumnHeader', function () { columnName="_source" columnDisplayName="Document" dataView={stubLogstashDataView} + showColumnTokens /> ); expect(component.text()).toBe('Document'); @@ -105,6 +108,7 @@ describe('DataTableColumnHeader', function () { columnName="nested_user" columnDisplayName="Nested User" dataView={stubDataViewWithNested} + showColumnTokens /> ); expect(component.text()).toBe('NestedNested User'); diff --git a/packages/kbn-unified-data-table/src/components/data_table_column_header.tsx b/packages/kbn-unified-data-table/src/components/data_table_column_header.tsx index 37d8d937c0a89..2dd048525a32f 100644 --- a/packages/kbn-unified-data-table/src/components/data_table_column_header.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table_column_header.tsx @@ -7,52 +7,71 @@ */ import React, { useMemo } from 'react'; -import { css } from '@emotion/react'; -import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; -import type { DataView } from '@kbn/data-views-plugin/common'; +import { css, CSSObject } from '@emotion/react'; +import { EuiIcon, EuiToolTip } from '@elastic/eui'; +import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import { FieldIcon, getFieldIconProps } from '@kbn/field-utils'; import { isNestedFieldParent } from '@kbn/discover-utils'; +import { i18n } from '@kbn/i18n'; +import { euiThemeVars } from '@kbn/ui-theme'; import type { DataTableColumnTypes } from '../types'; +import ColumnHeaderTruncateContainer from './column_header_truncate_container'; interface DataTableColumnHeaderProps { dataView: DataView; columnName: string | null; columnDisplayName: string; columnTypes?: DataTableColumnTypes; + headerRowHeight?: number; + showColumnTokens?: boolean; } export const DataTableColumnHeader: React.FC = (props) => { - const { columnDisplayName, columnName, columnTypes, dataView } = props; + const { + columnDisplayName, + showColumnTokens, + columnName, + columnTypes, + dataView, + headerRowHeight = 1, + } = props; + + return ( + + {showColumnTokens && ( + + )} + + + ); +}; + +const DataTableColumnToken: React.FC< + Pick +> = (props) => { + const { columnName, columnTypes, dataView } = props; const columnToken = useMemo( () => getRenderedToken({ columnName, columnTypes, dataView }), [columnName, columnTypes, dataView] ); - return ( - - {columnToken && {columnToken}} - - {columnDisplayName} - - - ); + return columnToken ? ( + {columnToken} + ) : null; +}; + +const DataTableColumnTitle: React.FC> = ({ + columnDisplayName, +}) => { + return {columnDisplayName}; }; +const fieldIconCss: CSSObject = { verticalAlign: 'bottom' }; + function getRenderedToken({ dataView, columnName, @@ -65,19 +84,56 @@ function getRenderedToken({ // for text-based searches if (columnTypes) { return columnTypes[columnName] && columnTypes[columnName] !== 'unknown' ? ( // renders an icon or nothing - + ) : null; } const dataViewField = dataView.getFieldByName(columnName); if (dataViewField) { - return ; + return ; } if (isNestedFieldParent(columnName, dataView)) { - return ; + return ; } return null; } + +export const DataTableTimeColumnHeader = ({ + dataView, + dataViewField, + headerRowHeight = 1, +}: { + dataView: DataView; + dataViewField?: DataViewField; + headerRowHeight?: number; +}) => { + const timeFieldName = dataViewField?.customLabel ?? dataView.timeFieldName; + const primaryTimeAriaLabel = i18n.translate( + 'unifiedDataTable.tableHeader.timeFieldIconTooltipAriaLabel', + { + defaultMessage: '{timeFieldName} - this field represents the time that events occurred.', + values: { timeFieldName }, + } + ); + const primaryTimeTooltip = i18n.translate('unifiedDataTable.tableHeader.timeFieldIconTooltip', { + defaultMessage: 'This field represents the time that events occurred.', + }); + + return ( +
+ + + {timeFieldName} + + +
+ ); +}; diff --git a/packages/kbn-unified-data-table/src/components/data_table_columns.test.tsx b/packages/kbn-unified-data-table/src/components/data_table_columns.test.tsx index e1d7082353e1c..31636b7027442 100644 --- a/packages/kbn-unified-data-table/src/components/data_table_columns.test.tsx +++ b/packages/kbn-unified-data-table/src/components/data_table_columns.test.tsx @@ -8,6 +8,7 @@ import { dataViewMock } from '@kbn/discover-utils/src/__mocks__'; import type { DataView } from '@kbn/data-views-plugin/public'; +import React from 'react'; import { getEuiGridColumns, getVisibleColumns, @@ -351,5 +352,52 @@ describe('Data table columns', function () { }); expect(gridColumns[1].schema).toBe('numeric'); }); + + it('returns columns in correct format when column customisation is provided', async () => { + const gridColumns = getEuiGridColumns({ + columns, + settings: {}, + dataView: dataViewWithTimefieldMock, + defaultColumns: false, + isSortEnabled: true, + isPlainRecord: true, + valueToStringConverter: dataTableContextMock.valueToStringConverter, + rowsCount: 100, + services: { + uiSettings: servicesMock.uiSettings, + toastNotifications: servicesMock.toastNotifications, + }, + hasEditDataViewPermission: () => + servicesMock.dataViewFieldEditor.userPermissions.editIndexPattern(), + onFilter: () => {}, + }); + + const extensionGridColumn = gridColumns[0]; + extensionGridColumn.display = test; + const customGridColumnsConfiguration = { + extension: () => extensionGridColumn, + }; + + const customizedGridColumns = getEuiGridColumns({ + columns, + settings: {}, + dataView: dataViewWithTimefieldMock, + defaultColumns: false, + isSortEnabled: true, + isPlainRecord: true, + valueToStringConverter: dataTableContextMock.valueToStringConverter, + rowsCount: 100, + services: { + uiSettings: servicesMock.uiSettings, + toastNotifications: servicesMock.toastNotifications, + }, + hasEditDataViewPermission: () => + servicesMock.dataViewFieldEditor.userPermissions.editIndexPattern(), + onFilter: () => {}, + customGridColumnsConfiguration, + }); + + expect(customizedGridColumns).toMatchSnapshot(); + }); }); }); 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 f7a3d41bf330e..7393d3c034fa3 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 @@ -11,15 +11,13 @@ import { i18n } from '@kbn/i18n'; import { type EuiDataGridColumn, type EuiDataGridColumnCellAction, - EuiIcon, EuiScreenReaderOnly, - EuiToolTip, } from '@elastic/eui'; import type { DataView } from '@kbn/data-views-plugin/public'; import { ToastsStart, IUiSettingsClient } from '@kbn/core/public'; import { DocViewFilterFn } from '@kbn/unified-doc-viewer/types'; import { ExpandButton } from './data_table_expand_button'; -import { UnifiedDataTableSettings } from '../types'; +import { CustomGridColumnsConfiguration, UnifiedDataTableSettings } from '../types'; import type { ValueToStringConverter, DataTableColumnTypes } from '../types'; import { buildCellActions } from './default_cell_actions'; import { getSchemaByKbnType } from './data_table_schema'; @@ -27,9 +25,10 @@ import { SelectButton } from './data_table_document_selection'; import { defaultTimeColumnWidth } from '../constants'; import { buildCopyColumnNameButton, buildCopyColumnValuesButton } from './build_copy_column_button'; import { buildEditFieldButton } from './build_edit_field_button'; -import { DataTableColumnHeader } from './data_table_column_header'; +import { DataTableColumnHeader, DataTableTimeColumnHeader } from './data_table_column_header'; const DataTableColumnHeaderMemoized = React.memo(DataTableColumnHeader); +const DataTableTimeColumnHeaderMemoized = React.memo(DataTableTimeColumnHeader); const openDetails = { id: 'openDetails', @@ -85,6 +84,8 @@ function buildEuiGridColumn({ visibleCellActions, columnTypes, showColumnTokens, + headerRowHeight, + customGridColumnsConfiguration, }: { columnName: string; columnWidth: number | undefined; @@ -102,6 +103,8 @@ function buildEuiGridColumn({ visibleCellActions?: number; columnTypes?: DataTableColumnTypes; showColumnTokens?: boolean; + headerRowHeight?: number; + customGridColumnsConfiguration?: CustomGridColumnsConfiguration; }) { const dataViewField = dataView.getFieldByName(columnName); const editFieldButton = @@ -131,14 +134,17 @@ function buildEuiGridColumn({ id: columnName, schema: getSchemaByKbnType(columnType), isSortable: isSortEnabled && (isPlainRecord || dataViewField?.sortable === true), - display: showColumnTokens ? ( - - ) : undefined, + display: + showColumnTokens || (headerRowHeight && headerRowHeight !== 1) ? ( + + ) : undefined, displayAsText: columnDisplayName, actions: { showHide: @@ -176,32 +182,23 @@ function buildEuiGridColumn({ }; if (column.id === dataView.timeFieldName) { - const timeFieldName = dataViewField?.customLabel ?? dataView.timeFieldName; - const primaryTimeAriaLabel = i18n.translate( - 'unifiedDataTable.tableHeader.timeFieldIconTooltipAriaLabel', - { - defaultMessage: '{timeFieldName} - this field represents the time that events occurred.', - values: { timeFieldName }, - } - ); - const primaryTimeTooltip = i18n.translate('unifiedDataTable.tableHeader.timeFieldIconTooltip', { - defaultMessage: 'This field represents the time that events occurred.', - }); - column.display = ( -
- - <> - {timeFieldName} - - -
+ ); column.initialWidth = defaultTimeColumnWidth; } + if (columnWidth > 0) { column.initialWidth = Number(columnWidth); } + + if (customGridColumnsConfiguration && customGridColumnsConfiguration[column.id]) { + return customGridColumnsConfiguration[column.id]({ column, headerRowHeight }); + } return column; } @@ -222,6 +219,8 @@ export function getEuiGridColumns({ visibleCellActions, columnTypes, showColumnTokens, + headerRowHeight, + customGridColumnsConfiguration, }: { columns: string[]; columnsCellActions?: EuiDataGridColumnCellAction[][]; @@ -242,6 +241,8 @@ export function getEuiGridColumns({ visibleCellActions?: number; columnTypes?: DataTableColumnTypes; showColumnTokens?: boolean; + headerRowHeight?: number; + customGridColumnsConfiguration?: CustomGridColumnsConfiguration; }) { const getColWidth = (column: string) => settings?.columns?.[column]?.width ?? 0; @@ -263,6 +264,8 @@ export function getEuiGridColumns({ visibleCellActions, columnTypes, showColumnTokens, + headerRowHeight, + customGridColumnsConfiguration, }) ); } 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 4f660009a232c..db6ed7680b0be 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 @@ -6,15 +6,13 @@ * Side Public License, v 1. */ import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react'; -import classNames from 'classnames'; import { - EuiButtonEmpty, EuiCheckbox, EuiContextMenuItem, EuiContextMenuPanel, EuiCopy, EuiDataGridCellValueElementProps, - EuiNotificationBadge, + EuiDataGridToolbarControl, EuiPopover, EuiFlexGroup, EuiFlexItem, @@ -183,33 +181,20 @@ export function DataTableDocumentToolbarBtn({ isOpen={isSelectionPopoverOpen} panelPaddingSize="none" button={ - - - - - - - {selectedDocs.length} - - - + + } > {isSelectionPopoverOpen && } diff --git a/packages/kbn-unified-data-table/src/components/source_document.test.tsx b/packages/kbn-unified-data-table/src/components/source_document.test.tsx new file mode 100644 index 0000000000000..1c3f3fe6d89c5 --- /dev/null +++ b/packages/kbn-unified-data-table/src/components/source_document.test.tsx @@ -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 { dataViewMock } from '@kbn/discover-utils/src/__mocks__'; +import { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; +import { mountWithIntl } from '@kbn/test-jest-helpers'; +import React from 'react'; +import SourceDocument from './source_document'; +import type { EsHitRecord } from '@kbn/discover-utils/src/types'; +import { buildDataTableRecord } from '@kbn/discover-utils'; + +const mockServices = { + fieldFormats: { + getDefaultInstance: jest.fn(() => ({ convert: (value: unknown) => (value ? value : '-') })), + }, +}; + +const rowsSource: EsHitRecord[] = [ + { + _id: '1', + _index: 'test', + _score: 1, + _source: { bytes: 100, extension: '.gz' }, + highlight: { + extension: ['@kibana-highlighted-field.gz@/kibana-highlighted-field'], + }, + }, +]; + +const build = (hit: EsHitRecord) => buildDataTableRecord(hit, dataViewMock); + +describe('Unified data table source document cell rendering', function () { + it('renders a description list for source type documents', () => { + const rows = rowsSource.map(build); + + const component = mountWithIntl( + false} + maxEntries={100} + isPlainRecord={true} + /> + ); + expect(component.html()).toMatchInlineSnapshot( + `"
_index
test
_score
1
"` + ); + }); +}); diff --git a/packages/kbn-unified-data-table/src/components/source_document.tsx b/packages/kbn-unified-data-table/src/components/source_document.tsx new file mode 100644 index 0000000000000..fd221f63fcc64 --- /dev/null +++ b/packages/kbn-unified-data-table/src/components/source_document.tsx @@ -0,0 +1,130 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import React, { Fragment } from 'react'; +import type { + DataTableRecord, + EsHitRecord, + FormattedHit, + ShouldShowFieldInTableHandler, +} from '@kbn/discover-utils/src/types'; +import type { DataView } from '@kbn/data-views-plugin/common'; +import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; +import { formatHit } from '@kbn/discover-utils'; +import { + EuiDescriptionList, + EuiDescriptionListDescription, + EuiDescriptionListTitle, +} from '@elastic/eui'; +import classnames from 'classnames'; +import { getInnerColumns } from '../utils/columns'; + +const CELL_CLASS = 'unifiedDataTable__cellValue'; + +export function SourceDocument({ + useTopLevelObjectColumns, + row, + columnId, + dataView, + shouldShowFieldHandler, + maxEntries, + isPlainRecord, + fieldFormats, + dataTestSubj = 'discoverCellDescriptionList', + className, +}: { + useTopLevelObjectColumns: boolean; + row: DataTableRecord; + columnId: string; + dataView: DataView; + shouldShowFieldHandler: ShouldShowFieldInTableHandler; + maxEntries: number; + isPlainRecord?: boolean; + fieldFormats: FieldFormatsStart; + dataTestSubj?: string; + className?: string; +}) { + const pairs: FormattedHit = useTopLevelObjectColumns + ? getTopLevelObjectPairs(row.raw, columnId, dataView, shouldShowFieldHandler).slice( + 0, + maxEntries + ) + : formatHit(row, dataView, shouldShowFieldHandler, maxEntries, fieldFormats); + + return ( + + {pairs.map(([fieldDisplayName, value, fieldName]) => { + // temporary solution for text based mode. As there are a lot of unsupported fields we want to + // hide the empty one from the Document view + if (isPlainRecord && fieldName && row.flattened[fieldName] === null) return null; + return ( + + + {fieldDisplayName} + + + + ); + })} + + ); +} + +/** + * Helper function to show top level objects + * this is used for legacy stuff like displaying products of our ecommerce dataset + */ +function getTopLevelObjectPairs( + row: EsHitRecord, + columnId: string, + dataView: DataView, + shouldShowFieldHandler: ShouldShowFieldInTableHandler +) { + const innerColumns = getInnerColumns(row.fields as Record, columnId); + // Put the most important fields first + const highlights: Record = (row.highlight as Record) ?? {}; + const highlightPairs: FormattedHit = []; + const sourcePairs: FormattedHit = []; + Object.entries(innerColumns).forEach(([key, values]) => { + const subField = dataView.getFieldByName(key); + const displayKey = dataView.fields.getByName + ? dataView.fields.getByName(key)?.displayName + : undefined; + const formatter = subField + ? dataView.getFormatterForField(subField) + : { convert: (v: unknown, ...rest: unknown[]) => String(v) }; + const formatted = values + .map((val: unknown) => + formatter.convert(val, 'html', { + field: subField, + hit: row, + }) + ) + .join(', '); + const pairs = highlights[key] ? highlightPairs : sourcePairs; + if (displayKey) { + if (shouldShowFieldHandler(displayKey)) { + pairs.push([displayKey, formatted, key]); + } + } else { + pairs.push([key, formatted, key]); + } + }); + return [...highlightPairs, ...sourcePairs]; +} + +// eslint-disable-next-line import/no-default-export +export default SourceDocument; diff --git a/packages/kbn-unified-data-table/src/components/source_popover_content.tsx b/packages/kbn-unified-data-table/src/components/source_popover_content.tsx new file mode 100644 index 0000000000000..bde3cd80145d1 --- /dev/null +++ b/packages/kbn-unified-data-table/src/components/source_popover_content.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 type { DataTableRecord } from '@kbn/discover-utils/src/types'; +import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import React from 'react'; +import JsonCodeEditor from './json_code_editor/json_code_editor'; +import { defaultMonacoEditorWidth } from '../constants'; +import { getInnerColumns } from '../utils/columns'; + +export const SourcePopoverContent = ({ + closeButton, + columnId, + row, + useTopLevelObjectColumns, + dataTestSubj = 'dataTableExpandCellActionJsonPopover', +}: { + closeButton: JSX.Element; + columnId: string; + row: DataTableRecord; + useTopLevelObjectColumns: boolean; + dataTestSubj?: string; +}) => { + return ( + + + + {closeButton} + + + + + + + ); +}; + +function getJSON(columnId: string, row: DataTableRecord, useTopLevelObjectColumns: boolean) { + const json = useTopLevelObjectColumns + ? getInnerColumns(row.raw.fields as Record, columnId) + : row.raw; + return json as Record; +} + +// eslint-disable-next-line import/no-default-export +export default SourcePopoverContent; diff --git a/packages/kbn-unified-data-table/src/types.ts b/packages/kbn-unified-data-table/src/types.ts index 77eb6243ac35d..a27f1db510cbe 100644 --- a/packages/kbn-unified-data-table/src/types.ts +++ b/packages/kbn-unified-data-table/src/types.ts @@ -6,6 +6,12 @@ * Side Public License, v 1. */ +import React from 'react'; +import { EuiDataGridCellValueElementProps, type EuiDataGridColumn } from '@elastic/eui'; +import type { DataTableRecord } from '@kbn/discover-utils/src/types'; +import type { DataView } from '@kbn/data-views-plugin/common'; +import type { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; + /** * User configurable state of data grid, persisted in saved search */ @@ -27,3 +33,25 @@ export type ValueToStringConverter = ( * Custom column types per column name */ export type DataTableColumnTypes = Record; + +export type DataGridCellValueElementProps = EuiDataGridCellValueElementProps & { + row: DataTableRecord; + dataView: DataView; + fieldFormats: FieldFormatsStart; + closePopover: () => void; +}; + +export type CustomCellRenderer = Record< + string, + (props: DataGridCellValueElementProps) => React.ReactNode +>; + +export interface CustomGridColumnProps { + column: EuiDataGridColumn; + headerRowHeight?: number; +} + +export type CustomGridColumnsConfiguration = Record< + string, + (props: CustomGridColumnProps) => EuiDataGridColumn +>; diff --git a/packages/kbn-unified-data-table/src/utils/columns.ts b/packages/kbn-unified-data-table/src/utils/columns.ts index f2a72f0a8b650..f9ccadb16c991 100644 --- a/packages/kbn-unified-data-table/src/utils/columns.ts +++ b/packages/kbn-unified-data-table/src/utils/columns.ts @@ -26,3 +26,11 @@ export function getDisplayedColumns(stateColumns: string[] = [], dataView: DataV ? stateColumns : SOURCE_ONLY; } + +export function getInnerColumns(fields: Record, columnId: string) { + return Object.fromEntries( + Object.entries(fields).filter(([key]) => { + return key.startsWith(`${columnId}.`); + }) + ); +} 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 7db7ffedfdecf..9e211bee1cad7 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 @@ -13,10 +13,12 @@ import { findTestSubject } from '@elastic/eui/lib/test'; import { mountWithIntl } from '@kbn/test-jest-helpers'; import { getRenderCellValueFn } from './get_render_cell_value'; import { dataViewMock } from '@kbn/discover-utils/src/__mocks__'; -import { CodeEditorProps, KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; +import { KibanaContextProvider } from '@kbn/kibana-react-plugin/public'; +import { CodeEditorProps } from '@kbn/code-editor'; import { buildDataTableRecord } from '@kbn/discover-utils'; import type { EsHitRecord } from '@kbn/discover-utils/types'; import { FieldFormatsStart } from '@kbn/field-formats-plugin/public'; +import { SourceDocument } from '../components/source_document'; jest.mock('@kbn/code-editor', () => { const original = jest.requireActual('@kbn/code-editor'); @@ -164,7 +166,7 @@ describe('Unified data table cell rendering', function () { /> ); expect(component.html()).toMatchInlineSnapshot( - `"
100
"` + `"
100
"` ); }); @@ -191,18 +193,20 @@ describe('Unified data table cell rendering', function () { /> ); expect(component.html()).toMatchInlineSnapshot( - `"
100
"` + `"
100
"` ); findTestSubject(component, 'docTableClosePopover').simulate('click'); expect(closePopoverMockFn).toHaveBeenCalledTimes(1); }); it('renders _source column correctly', () => { + const showFieldHandler = (fieldName: string) => ['extension', 'bytes'].includes(fieldName); + const rows = rowsSource.map(build); const DataTableCellValue = getRenderCellValueFn({ dataView: dataViewMock, - rows: rowsSource.map(build), + rows, useNewFieldsApi: false, - shouldShowFieldHandler: (fieldName) => ['extension', 'bytes'].includes(fieldName), + shouldShowFieldHandler: showFieldHandler, closePopover: jest.fn(), fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, maxEntries: 100, @@ -218,66 +222,19 @@ describe('Unified data table cell rendering', function () { setCellProps={jest.fn()} /> ); - expect(component).toMatchInlineSnapshot(` - - - extension - - - - bytesDisplayName - - - - _index - - - - _score - - - - `); + + const sourceDocumentComponent = component.find(SourceDocument); + expect(sourceDocumentComponent.exists()).toBeTruthy(); + + expect(sourceDocumentComponent.props()).toEqual({ + columnId: '_source', + dataView: dataViewMock, + fieldFormats: mockServices.fieldFormats, + useTopLevelObjectColumns: false, + maxEntries: 100, + shouldShowFieldHandler: showFieldHandler, + row: rows[0], + }); }); it('renders _source column correctly when isDetails is set to true', () => { @@ -302,66 +259,57 @@ describe('Unified data table cell rendering', function () { /> ); expect(component).toMatchInlineSnapshot(` - - - - - - - - - - - - + } + columnId="_source" + row={ + Object { + "flattened": Object { + "_index": "test", + "_score": 1, + "bytes": 100, + "extension": ".gz", + }, + "id": "test::1::", + "isAnchor": undefined, + "raw": Object { + "_id": "1", + "_index": "test", + "_score": 1, + "_source": Object { + "bytes": 100, + "extension": ".gz", + }, + "highlight": Object { + "extension": Array [ + "@kibana-highlighted-field.gz@/kibana-highlighted-field", + ], + }, + }, + } + } + useTopLevelObjectColumns={false} + /> `); }); it('renders _source column correctly if on text based mode and have nulls', () => { + const rows = rowsSourceWithEmptyValues.map(build); + const showFieldHandler = (fieldName: string) => ['extension', 'bytes'].includes(fieldName); const DataTableCellValue = getRenderCellValueFn({ dataView: dataViewMock, - rows: rowsSourceWithEmptyValues.map(build), + rows, useNewFieldsApi: false, - shouldShowFieldHandler: (fieldName) => ['extension', 'bytes'].includes(fieldName), + shouldShowFieldHandler: showFieldHandler, closePopover: jest.fn(), fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, maxEntries: 100, @@ -378,61 +326,30 @@ describe('Unified data table cell rendering', function () { setCellProps={jest.fn()} /> ); - expect(component).toMatchInlineSnapshot(` - - - bytesDisplayName - - - - _index - - - - _score - - - - `); + + const sourceDocumentComponent = component.find(SourceDocument); + expect(sourceDocumentComponent.exists()).toBeTruthy(); + + expect(sourceDocumentComponent.props()).toEqual({ + columnId: '_source', + dataView: dataViewMock, + fieldFormats: mockServices.fieldFormats, + useTopLevelObjectColumns: false, + maxEntries: 100, + shouldShowFieldHandler: showFieldHandler, + row: rows[0], + isPlainRecord: true, + }); }); it('renders fields-based column correctly', () => { + const rows = rowsFields.map(build); + const showFieldHandler = (fieldName: string) => ['extension', 'bytes'].includes(fieldName); const DataTableCellValue = getRenderCellValueFn({ dataView: dataViewMock, - rows: rowsFields.map(build), + rows, useNewFieldsApi: true, - shouldShowFieldHandler: (fieldName) => ['extension', 'bytes'].includes(fieldName), + shouldShowFieldHandler: showFieldHandler, closePopover: jest.fn(), fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, maxEntries: 100, @@ -448,78 +365,29 @@ describe('Unified data table cell rendering', function () { setCellProps={jest.fn()} /> ); - expect(component).toMatchInlineSnapshot(` - - - extension - - - - bytesDisplayName - - - - _index - - - - _score - - - - `); + + const sourceDocumentComponent = component.find(SourceDocument); + expect(sourceDocumentComponent.exists()).toBeTruthy(); + + expect(sourceDocumentComponent.props()).toEqual({ + columnId: '_source', + dataView: dataViewMock, + fieldFormats: mockServices.fieldFormats, + useTopLevelObjectColumns: false, + maxEntries: 100, + shouldShowFieldHandler: showFieldHandler, + row: rows[0], + }); }); it('limits amount of rendered items', () => { + const rows = rowsFields.map(build); + const showFieldHandler = (fieldName: string) => ['extension', 'bytes'].includes(fieldName); const DataTableCellValue = getRenderCellValueFn({ dataView: dataViewMock, - rows: rowsFields.map(build), + rows, useNewFieldsApi: true, - shouldShowFieldHandler: (fieldName) => ['extension', 'bytes'].includes(fieldName), + shouldShowFieldHandler: showFieldHandler, closePopover: jest.fn(), fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, // this is the number of rendered items @@ -536,42 +404,19 @@ describe('Unified data table cell rendering', function () { setCellProps={jest.fn()} /> ); - expect(component).toMatchInlineSnapshot(` - - - extension - - - - and 3 more fields - - - - `); + + const sourceDocumentComponent = component.find(SourceDocument); + expect(sourceDocumentComponent.exists()).toBeTruthy(); + + expect(sourceDocumentComponent.props()).toEqual({ + columnId: '_source', + dataView: dataViewMock, + fieldFormats: mockServices.fieldFormats, + useTopLevelObjectColumns: false, + maxEntries: 1, + shouldShowFieldHandler: showFieldHandler, + row: rows[0], + }); }); it('renders fields-based column correctly when isDetails is set to true', () => { @@ -579,7 +424,7 @@ describe('Unified data table cell rendering', function () { dataView: dataViewMock, rows: rowsFields.map(build), useNewFieldsApi: true, - shouldShowFieldHandler: (fieldName) => false, + shouldShowFieldHandler: (fieldName: string) => false, closePopover: jest.fn(), fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, maxEntries: 100, @@ -596,72 +441,67 @@ describe('Unified data table cell rendering', function () { /> ); expect(component).toMatchInlineSnapshot(` - - - - - - - - - - - - + } + columnId="_source" + row={ + Object { + "flattened": Object { + "_index": "test", + "_score": 1, + "bytes": Array [ + 100, + ], + "extension": Array [ + ".gz", + ], + }, + "id": "test::1::", + "isAnchor": undefined, + "raw": Object { + "_id": "1", + "_index": "test", + "_score": 1, + "_source": undefined, + "fields": Object { + "bytes": Array [ + 100, + ], + "extension": Array [ + ".gz", + ], + }, + "highlight": Object { + "extension": Array [ + "@kibana-highlighted-field.gz@/kibana-highlighted-field", + ], + }, + }, + } + } + useTopLevelObjectColumns={false} + /> `); }); it('collect object fields and renders them like _source', () => { + const showFieldHandler = (fieldName: string) => + ['object.value', 'extension', 'bytes'].includes(fieldName); + const rows = rowsFieldsWithTopLevelObject.map(build); const DataTableCellValue = getRenderCellValueFn({ dataView: dataViewMock, - rows: rowsFieldsWithTopLevelObject.map(build), + rows, useNewFieldsApi: true, - shouldShowFieldHandler: (fieldName) => - ['object.value', 'extension', 'bytes'].includes(fieldName), + shouldShowFieldHandler: showFieldHandler, closePopover: jest.fn(), fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, maxEntries: 100, @@ -677,37 +517,31 @@ describe('Unified data table cell rendering', function () { setCellProps={jest.fn()} /> ); - expect(component).toMatchInlineSnapshot(` - - - object.value - - - - `); + + const sourceDocumentComponent = component.find(SourceDocument); + expect(sourceDocumentComponent.exists()).toBeTruthy(); + + expect(sourceDocumentComponent.props()).toEqual({ + columnId: 'object', + dataView: dataViewMock, + fieldFormats: mockServices.fieldFormats, + maxEntries: 100, + shouldShowFieldHandler: showFieldHandler, + useTopLevelObjectColumns: true, + row: rows[0], + }); }); it('collect object fields and renders them like _source with fallback for unmapped', () => { (dataViewMock.getFieldByName as jest.Mock).mockReturnValueOnce(undefined); + const showFieldHandler = (fieldName: string) => + ['extension', 'bytes', 'object.value'].includes(fieldName); + const rows = rowsFieldsWithTopLevelObject.map(build); const DataTableCellValue = getRenderCellValueFn({ dataView: dataViewMock, - rows: rowsFieldsWithTopLevelObject.map(build), + rows, useNewFieldsApi: true, - shouldShowFieldHandler: (fieldName) => - ['extension', 'bytes', 'object.value'].includes(fieldName), + shouldShowFieldHandler: showFieldHandler, closePopover: jest.fn(), fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, maxEntries: 100, @@ -723,27 +557,19 @@ describe('Unified data table cell rendering', function () { setCellProps={jest.fn()} /> ); - expect(component).toMatchInlineSnapshot(` - - - object.value - - - - `); + + const sourceDocumentComponent = component.find(SourceDocument); + expect(sourceDocumentComponent.exists()).toBeTruthy(); + + expect(sourceDocumentComponent.props()).toEqual({ + columnId: 'object', + dataView: dataViewMock, + fieldFormats: mockServices.fieldFormats, + maxEntries: 100, + shouldShowFieldHandler: showFieldHandler, + useTopLevelObjectColumns: true, + row: rows[0], + }); }); it('collect object fields and renders them as json in details', () => { @@ -769,48 +595,55 @@ describe('Unified data table cell rendering', function () { /> ); expect(component).toMatchInlineSnapshot(` - - - - - - - - - - + } + columnId="object" + row={ + Object { + "flattened": Object { + "_index": "test", + "_score": 1, + "extension": Array [ + ".gz", + ], + "object.value": Array [ + 100, + ], + }, + "id": "test::1::", + "isAnchor": undefined, + "raw": Object { + "_id": "1", + "_index": "test", + "_score": 1, + "_source": undefined, + "fields": Object { + "extension": Array [ + ".gz", + ], "object.value": Array [ 100, ], - } - } - width={370} - /> - - + }, + "highlight": Object { + "extension": Array [ + "@kibana-highlighted-field.gz@/kibana-highlighted-field", + ], + }, + }, + } + } + useTopLevelObjectColumns={true} + /> `); }); @@ -949,7 +782,7 @@ describe('Unified data table cell rendering', function () { dataView: dataViewMock, rows: rowsFieldsUnmapped.map(build), useNewFieldsApi: true, - shouldShowFieldHandler: (fieldName) => ['unmapped'].includes(fieldName), + shouldShowFieldHandler: (fieldName: string) => ['unmapped'].includes(fieldName), closePopover: jest.fn(), fieldFormats: mockServices.fieldFormats as unknown as FieldFormatsStart, maxEntries: 100, @@ -991,21 +824,23 @@ describe('Unified data table cell rendering', function () { ); expect(componentWithDetails).toMatchInlineSnapshot(` - + + /> + void; fieldFormats: FieldFormatsStart; maxEntries: number; - externalCustomRenderers?: Record< - string, - (props: EuiDataGridCellValueElementProps) => React.ReactNode - >; + externalCustomRenderers?: CustomCellRenderer; isPlainRecord?: boolean; }) => { return ({ @@ -67,6 +57,34 @@ export const getRenderCellValueFn = ({ isExpandable, isExpanded, }: EuiDataGridCellValueElementProps) => { + const row = rows ? rows[rowIndex] : undefined; + const field = dataView.fields.getByName(columnId); + const ctx = useContext(UnifiedDataTableContext); + + useEffect(() => { + if (!externalCustomRenderers) { + if (row?.isAnchor) { + setCellProps({ + className: 'dscDocsGrid__cell--highlight', + }); + } else if (ctx.expanded && row && ctx.expanded.id === row.id) { + setCellProps({ + style: { + backgroundColor: ctx.isDarkMode + ? themeDark.euiColorHighlight + : themeLight.euiColorHighlight, + }, + }); + } else { + setCellProps({ style: undefined }); + } + } + }, [ctx, row, setCellProps]); + + if (typeof row === 'undefined') { + return -; + } + if (!!externalCustomRenderers && !!externalCustomRenderers[columnId]) { return ( <> @@ -78,36 +96,14 @@ export const getRenderCellValueFn = ({ isExpandable, isExpanded, colIndex, + row, + dataView, + fieldFormats, + closePopover, })} ); } - const row = rows ? rows[rowIndex] : undefined; - - const field = dataView.fields.getByName(columnId); - const ctx = useContext(UnifiedDataTableContext); - - useEffect(() => { - if (row?.isAnchor) { - setCellProps({ - className: 'dscDocsGrid__cell--highlight', - }); - } else if (ctx.expanded && row && ctx.expanded.id === row.id) { - setCellProps({ - style: { - backgroundColor: ctx.isDarkMode - ? themeDark.euiColorHighlight - : themeLight.euiColorHighlight, - }, - }); - } else { - setCellProps({ style: undefined }); - } - }, [ctx, row, setCellProps]); - - if (typeof row === 'undefined') { - return -; - } /** * when using the fields api this code is used to show top level objects @@ -133,36 +129,17 @@ export const getRenderCellValueFn = ({ } if (field?.type === '_source' || useTopLevelObjectColumns) { - const pairs: FormattedHit = useTopLevelObjectColumns - ? getTopLevelObjectPairs(row.raw, columnId, dataView, shouldShowFieldHandler).slice( - 0, - maxEntries - ) - : formatHit(row, dataView, shouldShowFieldHandler, maxEntries, fieldFormats); - return ( - - {pairs.map(([fieldDisplayName, value, fieldName]) => { - // temporary solution for text based mode. As there are a lot of unsupported fields we want to - // hide the empty one from the Document view - if (isPlainRecord && fieldName && row.flattened[fieldName] === null) return null; - return ( - - - {fieldDisplayName} - - - - ); - })} - + ); } @@ -179,25 +156,6 @@ export const getRenderCellValueFn = ({ }; }; -/** - * Helper function to show top level objects - * this is used for legacy stuff like displaying products of our ecommerce dataset - */ -function getInnerColumns(fields: Record, columnId: string) { - return Object.fromEntries( - Object.entries(fields).filter(([key]) => { - return key.startsWith(`${columnId}.`); - }) - ); -} - -function getJSON(columnId: string, row: DataTableRecord, useTopLevelObjectColumns: boolean) { - const json = useTopLevelObjectColumns - ? getInnerColumns(row.raw.fields as Record, columnId) - : row.raw; - return json as Record; -} - /** * Helper function for the cell popover */ @@ -232,89 +190,40 @@ function renderPopoverContent({ ); if (useTopLevelObjectColumns || field?.type === '_source') { return ( - - - - {closeButton} - - - - - - + ); } return ( - + - + + + {closeButton} ); } -/** - * Helper function to show top level objects - * this is used for legacy stuff like displaying products of our ecommerce dataset - */ -function getTopLevelObjectPairs( - row: EsHitRecord, - columnId: string, - dataView: DataView, - shouldShowFieldHandler: ShouldShowFieldInTableHandler -) { - const innerColumns = getInnerColumns(row.fields as Record, columnId); - // Put the most important fields first - const highlights: Record = (row.highlight as Record) ?? {}; - const highlightPairs: FormattedHit = []; - const sourcePairs: FormattedHit = []; - Object.entries(innerColumns).forEach(([key, values]) => { - const subField = dataView.getFieldByName(key); - const displayKey = dataView.fields.getByName - ? dataView.fields.getByName(key)?.displayName - : undefined; - const formatter = subField - ? dataView.getFormatterForField(subField) - : { convert: (v: unknown, ...rest: unknown[]) => String(v) }; - const formatted = values - .map((val: unknown) => - formatter.convert(val, 'html', { - field: subField, - hit: row, - }) - ) - .join(', '); - const pairs = highlights[key] ? highlightPairs : sourcePairs; - if (displayKey) { - if (shouldShowFieldHandler(displayKey)) { - pairs.push([displayKey, formatted, key]); - } - } else { - pairs.push([key, formatted, key]); - } - }); - return [...highlightPairs, ...sourcePairs]; -} diff --git a/packages/kbn-unified-field-list/src/components/field_list_filters/field_type_filter.tsx b/packages/kbn-unified-field-list/src/components/field_list_filters/field_type_filter.tsx index c80b924333ecf..1cc5ea47a6114 100644 --- a/packages/kbn-unified-field-list/src/components/field_list_filters/field_type_filter.tsx +++ b/packages/kbn-unified-field-list/src/components/field_list_filters/field_type_filter.tsx @@ -49,7 +49,7 @@ const popoverTitleStyle = css` `; const filterButtonStyle = css` &, - & .euiFilterButton__textShift { + & .euiFilterButton__text { min-width: 0; line-height: 1; } diff --git a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar.tsx b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar.tsx index 4bc54069336b0..60479eeb6e647 100644 --- a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar.tsx +++ b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar.tsx @@ -22,7 +22,7 @@ import { useEuiTheme, } from '@elastic/eui'; import { ToolbarButton } from '@kbn/shared-ux-button-toolbar'; -import { type DataViewField } from '@kbn/data-views-plugin/public'; +import { DataViewField, type FieldSpec } from '@kbn/data-views-plugin/common'; import { getDataViewFieldSubtypeMulti } from '@kbn/es-query/src/utils'; import { FIELDS_LIMIT_SETTING, SEARCH_FIELDS_FROM_SOURCE } from '@kbn/discover-utils'; import { FieldList } from '../../components/field_list'; @@ -191,25 +191,6 @@ export const UnifiedFieldListSidebarComponent: React.FC { - if ( - searchMode !== 'documents' || - !useNewFieldsApi || - stateService.creationOptions.disableMultiFieldsGroupingByParent - ) { - setMultiFieldsMap(undefined); // we don't have to calculate multifields in this case - } else { - setMultiFieldsMap(calculateMultiFields(allFields, selectedFieldsState.selectedFieldsMap)); - } - }, [ - stateService.creationOptions.disableMultiFieldsGroupingByParent, - selectedFieldsState.selectedFieldsMap, - allFields, - useNewFieldsApi, - setMultiFieldsMap, - searchMode, - ]); - const popularFieldsLimit = useMemo( () => core.uiSettings.get(FIELDS_LIMIT_SETTING), [core.uiSettings] @@ -226,24 +207,47 @@ export const UnifiedFieldListSidebarComponent: React.FC({ - dataViewId: (searchMode === 'documents' && dataView?.id) || null, // passing `null` for text-based queries - allFields, - popularFieldsLimit: - searchMode !== 'documents' || stateService.creationOptions.disablePopularFields - ? 0 - : popularFieldsLimit, - isAffectedByGlobalFilter, - services: { - dataViews, - core, - }, - sortedSelectedFields: onSelectedFieldFilter ? undefined : selectedFieldsState.selectedFields, - onSelectedFieldFilter, - onSupportedFieldFilter: - stateService.creationOptions.onSupportedFieldFilter ?? onSupportedFieldFilter, - onOverrideFieldGroupDetails: stateService.creationOptions.onOverrideFieldGroupDetails, - }); + const { fieldListFiltersProps, fieldListGroupedProps, allFieldsModified } = + useGroupedFields({ + dataViewId: (searchMode === 'documents' && dataView?.id) || null, // passing `null` for text-based queries + allFields, + popularFieldsLimit: + searchMode !== 'documents' || stateService.creationOptions.disablePopularFields + ? 0 + : popularFieldsLimit, + isAffectedByGlobalFilter, + services: { + dataViews, + core, + }, + sortedSelectedFields: onSelectedFieldFilter ? undefined : selectedFieldsState.selectedFields, + onSelectedFieldFilter, + onSupportedFieldFilter: + stateService.creationOptions.onSupportedFieldFilter ?? onSupportedFieldFilter, + onOverrideFieldGroupDetails: stateService.creationOptions.onOverrideFieldGroupDetails, + getNewFieldsBySpec, + }); + + useEffect(() => { + if ( + searchMode !== 'documents' || + !useNewFieldsApi || + stateService.creationOptions.disableMultiFieldsGroupingByParent + ) { + setMultiFieldsMap(undefined); // we don't have to calculate multifields in this case + } else { + setMultiFieldsMap( + calculateMultiFields(allFieldsModified, selectedFieldsState.selectedFieldsMap) + ); + } + }, [ + stateService.creationOptions.disableMultiFieldsGroupingByParent, + selectedFieldsState.selectedFieldsMap, + allFieldsModified, + useNewFieldsApi, + setMultiFieldsMap, + searchMode, + ]); const renderFieldItem: FieldListGroupedProps['renderFieldItem'] = useCallback( ({ field, groupName, groupIndex, itemIndex, fieldSearchHighlight }) => ( @@ -300,26 +304,14 @@ export const UnifiedFieldListSidebarComponent: React.FC - ) : null; - const pageSidebarProps: Partial = { className: classnames('unifiedFieldListSidebar', { 'unifiedFieldListSidebar--collapsed': isSidebarCollapsed, ['unifiedFieldListSidebar--fullWidth']: fullWidth, }), - 'aria-label': i18n.translate( - 'unifiedFieldList.fieldListSidebar.indexAndFieldsSectionAriaLabel', - { - defaultMessage: 'Index and fields', - } - ), + 'aria-label': i18n.translate('unifiedFieldList.fieldListSidebar.fieldsSidebarAriaLabel', { + defaultMessage: 'Fields', + }), id: stateService.creationOptions.dataTestSubj?.fieldListSidebarDataTestSubj ?? 'unifiedFieldListSidebarId', @@ -328,6 +320,16 @@ export const UnifiedFieldListSidebarComponent: React.FC + ) : null; + if (isSidebarCollapsed && sidebarToggleButton) { return ( @@ -456,3 +458,7 @@ function calculateMultiFields( }); return map; } + +function getNewFieldsBySpec(fieldSpecArr: FieldSpec[]): DataViewField[] { + return fieldSpecArr.map((fieldSpec) => new DataViewField(fieldSpec)); +} diff --git a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar_container.tsx b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar_container.tsx index 32dd400f2d6fd..2d67cf72e83a8 100644 --- a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar_container.tsx +++ b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/field_list_sidebar_container.tsx @@ -17,6 +17,7 @@ import React, { } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n-react'; +import useObservable from 'react-use/lib/useObservable'; import type { IndexPatternFieldEditorStart } from '@kbn/data-view-field-editor-plugin/public'; import { EuiBadge, @@ -30,13 +31,12 @@ import { EuiShowFor, EuiTitle, } from '@elastic/eui'; -import { BehaviorSubject, Observable } from 'rxjs'; import { useExistingFieldsFetcher, type ExistingFieldsFetcher, } from '../../hooks/use_existing_fields'; import { useQuerySubscriber } from '../../hooks/use_query_subscriber'; -import { useSidebarToggle } from '../../hooks/use_sidebar_toggle'; +import { getSidebarVisibility, SidebarVisibility } from './get_sidebar_visibility'; import { UnifiedFieldListSidebar, type UnifiedFieldListSidebarCustomizableProps, @@ -50,7 +50,7 @@ import type { } from '../../types'; export interface UnifiedFieldListSidebarContainerApi { - isSidebarCollapsed$: Observable; + sidebarVisibility: SidebarVisibility; refetchFieldsExistenceInfo: ExistingFieldsFetcher['refetchFieldsExistenceInfo']; closeFieldListFlyout: () => void; // no user permission or missing dataViewFieldEditor service will result in `undefined` API methods @@ -122,8 +122,14 @@ const UnifiedFieldListSidebarContainer = forwardRef< ); const { data, dataViewFieldEditor } = services; const [isFieldListFlyoutVisible, setIsFieldListFlyoutVisible] = useState(false); - const { isSidebarCollapsed, onToggleSidebar } = useSidebarToggle({ stateService }); - const [isSidebarCollapsed$] = useState(() => new BehaviorSubject(isSidebarCollapsed)); + const [sidebarVisibility] = useState(() => + getSidebarVisibility({ + localStorageKey: stateService.creationOptions.localStorageKeyPrefix + ? `${stateService.creationOptions.localStorageKeyPrefix}:sidebarClosed` + : undefined, + }) + ); + const isSidebarCollapsed = useObservable(sidebarVisibility.isCollapsed$, false); const canEditDataView = Boolean(dataViewFieldEditor?.userPermissions.editIndexPattern()) || @@ -225,21 +231,17 @@ const UnifiedFieldListSidebarContainer = forwardRef< }; }, []); - useEffect(() => { - isSidebarCollapsed$.next(isSidebarCollapsed); - }, [isSidebarCollapsed, isSidebarCollapsed$]); - useImperativeHandle( componentRef, () => ({ - isSidebarCollapsed$, + sidebarVisibility, refetchFieldsExistenceInfo, closeFieldListFlyout, createField: editField, editField, deleteField, }), - [isSidebarCollapsed$, refetchFieldsExistenceInfo, closeFieldListFlyout, editField, deleteField] + [sidebarVisibility, refetchFieldsExistenceInfo, closeFieldListFlyout, editField, deleteField] ); if (!dataView) { @@ -260,7 +262,7 @@ const UnifiedFieldListSidebarContainer = forwardRef< if (stateService.creationOptions.showSidebarToggleButton) { commonSidebarProps.isSidebarCollapsed = isSidebarCollapsed; - commonSidebarProps.onToggleSidebar = onToggleSidebar; + commonSidebarProps.onToggleSidebar = sidebarVisibility.toggle; } const buttonPropsToTriggerFlyout = stateService.creationOptions.buttonPropsToTriggerFlyout; diff --git a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/get_sidebar_visibility.test.tsx b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/get_sidebar_visibility.test.tsx new file mode 100644 index 0000000000000..57798fbe3e66a --- /dev/null +++ b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/get_sidebar_visibility.test.tsx @@ -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. + */ + +import { act } from '@testing-library/react-hooks'; +import { getSidebarVisibility } from './get_sidebar_visibility'; + +const localStorageKey = 'test-sidebar-visibility'; + +describe('UnifiedFieldList getSidebarVisibility', () => { + beforeEach(() => { + localStorage.removeItem(localStorageKey); + }); + + it('should toggle correctly', async () => { + const state = getSidebarVisibility({ localStorageKey }); + + expect(state.isCollapsed$.getValue()).toBe(false); + + act(() => { + state.toggle(true); + }); + + expect(state.isCollapsed$.getValue()).toBe(true); + expect(localStorage.getItem(localStorageKey)).toBe('true'); + + act(() => { + state.toggle(false); + }); + + expect(state.isCollapsed$.getValue()).toBe(false); + expect(localStorage.getItem(localStorageKey)).toBe('false'); + }); + + it('should restore collapsed state and expand from it', async () => { + localStorage.setItem(localStorageKey, 'true'); + + const state = getSidebarVisibility({ localStorageKey }); + + expect(state.isCollapsed$.getValue()).toBe(true); + + act(() => { + state.toggle(false); + }); + + expect(state.isCollapsed$.getValue()).toBe(false); + expect(localStorage.getItem(localStorageKey)).toBe('false'); + }); + + it('should not persist if local storage key is not defined', async () => { + const state = getSidebarVisibility({ localStorageKey: undefined }); + + expect(state.isCollapsed$.getValue()).toBe(false); + + act(() => { + state.toggle(true); + }); + + expect(state.isCollapsed$.getValue()).toBe(true); + expect(localStorage.getItem(localStorageKey)).toBe(null); + }); +}); diff --git a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/get_sidebar_visibility.ts b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/get_sidebar_visibility.ts new file mode 100644 index 0000000000000..ebd1129708e33 --- /dev/null +++ b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/get_sidebar_visibility.ts @@ -0,0 +1,59 @@ +/* + * 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 SidebarVisibility { + isCollapsed$: BehaviorSubject; + toggle: (isCollapsed: boolean) => void; +} + +export interface GetSidebarStateParams { + localStorageKey?: string; +} + +/** + * For managing sidebar visibility state + * @param localStorageKey + */ +export const getSidebarVisibility = ({ + localStorageKey, +}: GetSidebarStateParams): SidebarVisibility => { + const isCollapsed$ = new BehaviorSubject( + localStorageKey ? getIsCollapsed(localStorageKey) : false + ); + + return { + isCollapsed$, + toggle: (isCollapsed) => { + isCollapsed$.next(isCollapsed); + if (localStorageKey) { + setIsCollapsed(localStorageKey, isCollapsed); + } + }, + }; +}; + +function getIsCollapsed(localStorageKey: string) { + let isCollapsed = false; + try { + isCollapsed = localStorage?.getItem(localStorageKey) === 'true'; + } catch { + // nothing + } + + return isCollapsed; +} + +function setIsCollapsed(localStorageKey: string, isCollapsed: boolean) { + try { + localStorage?.setItem(localStorageKey, String(isCollapsed)); + } catch { + // nothing + } +} diff --git a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/sidebar_toggle_button/sidebar_toggle_button.tsx b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/sidebar_toggle_button/sidebar_toggle_button.tsx index 7d9a35163fbde..2c6143e147ef5 100644 --- a/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/sidebar_toggle_button/sidebar_toggle_button.tsx +++ b/packages/kbn-unified-field-list/src/containers/unified_field_list_sidebar/sidebar_toggle_button/sidebar_toggle_button.tsx @@ -16,6 +16,7 @@ import { IconButtonGroup, type IconButtonGroupProps } from '@kbn/shared-ux-butto export interface SidebarToggleButtonProps { 'data-test-subj'?: string; isSidebarCollapsed: boolean; + panelId?: string; buttonSize: IconButtonGroupProps['buttonSize']; onChange: (isSidebarCollapsed: boolean) => void; } @@ -24,12 +25,14 @@ export interface SidebarToggleButtonProps { * A toggle button for the fields sidebar * @param data-test-subj * @param isSidebarCollapsed + * @param panelId * @param onChange * @constructor */ export const SidebarToggleButton: React.FC = ({ 'data-test-subj': dataTestSubj = 'unifiedFieldListSidebar__toggle', isSidebarCollapsed, + panelId, buttonSize, onChange, }) => { @@ -49,6 +52,8 @@ export const SidebarToggleButton: React.FC = ({ }), iconType: 'transitionLeftIn', 'data-test-subj': `${dataTestSubj}-expand`, + 'aria-expanded': false, + 'aria-controls': panelId, onClick: () => onChange(false), }, ] @@ -59,6 +64,8 @@ export const SidebarToggleButton: React.FC = ({ }), iconType: 'transitionLeftOut', 'data-test-subj': `${dataTestSubj}-collapse`, + 'aria-expanded': true, + 'aria-controls': panelId, onClick: () => onChange(true), }, ]), diff --git a/packages/kbn-unified-field-list/src/hooks/use_existing_fields.test.tsx b/packages/kbn-unified-field-list/src/hooks/use_existing_fields.test.tsx index 7cf22950a4a7d..0af0e4abc8e0d 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_existing_fields.test.tsx +++ b/packages/kbn-unified-field-list/src/hooks/use_existing_fields.test.tsx @@ -125,6 +125,7 @@ describe('UnifiedFieldList useExistingFields', () => { expect(hookReader.result.current.getFieldsExistenceStatus(dataViewId)).toBe( ExistenceFetchStatus.succeeded ); + expect(hookReader.result.current.getNewFields(dataViewId)).toStrictEqual([]); // does not have existence info => works less restrictive const anotherDataViewId = 'test-id'; @@ -140,6 +141,7 @@ describe('UnifiedFieldList useExistingFields', () => { expect(hookReader.result.current.getFieldsExistenceStatus(anotherDataViewId)).toBe( ExistenceFetchStatus.unknown ); + expect(hookReader.result.current.getNewFields(dataViewId)).toStrictEqual([]); }); it('should work correctly with multiple readers', async () => { @@ -217,6 +219,7 @@ describe('UnifiedFieldList useExistingFields', () => { expect(currentResult.isFieldsExistenceInfoUnavailable(dataViewId)).toBe(true); expect(currentResult.hasFieldData(dataViewId, dataView.fields[0].name)).toBe(true); expect(currentResult.getFieldsExistenceStatus(dataViewId)).toBe(ExistenceFetchStatus.failed); + expect(currentResult.getNewFields(dataViewId)).toStrictEqual([]); }); it('should work correctly for multiple data views', async () => { @@ -533,4 +536,49 @@ describe('UnifiedFieldList useExistingFields', () => { expect(params.onNoData).toHaveBeenCalledTimes(1); // still 1 time }); + + it('should include newFields', async () => { + const newFields = [{ name: 'test', type: 'keyword', searchable: true, aggregatable: true }]; + + (ExistingFieldsServiceApi.loadFieldExisting as jest.Mock).mockImplementation( + async ({ dataView: currentDataView }) => { + return { + existingFieldNames: [currentDataView.fields[0].name], + newFields, + }; + } + ); + + const params: ExistingFieldsFetcherParams = { + dataViews: [dataView], + services: mockedServices, + fromDate: '2019-01-01', + toDate: '2020-01-01', + query: { query: '', language: 'lucene' }, + filters: [], + }; + const hookFetcher = renderHook(useExistingFieldsFetcher, { + initialProps: params, + }); + + const hookReader = renderHook(useExistingFieldsReader); + await hookFetcher.waitForNextUpdate(); + + expect(ExistingFieldsServiceApi.loadFieldExisting).toHaveBeenCalledWith( + expect.objectContaining({ + fromDate: '2019-01-01', + toDate: '2020-01-01', + dslQuery, + dataView, + timeFieldName: dataView.timeFieldName, + }) + ); + + expect(hookReader.result.current.getFieldsExistenceStatus(dataView.id!)).toBe( + ExistenceFetchStatus.succeeded + ); + + expect(hookReader.result.current.getNewFields(dataView.id!)).toBe(newFields); + expect(hookReader.result.current.getNewFields('another-id')).toStrictEqual([]); + }); }); diff --git a/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts b/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts index d099a6f2b85e2..cd4e9ef05206f 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts +++ b/packages/kbn-unified-field-list/src/hooks/use_existing_fields.ts @@ -12,7 +12,7 @@ import { BehaviorSubject } from 'rxjs'; import type { CoreStart } from '@kbn/core/public'; import type { AggregateQuery, EsQueryConfig, Filter, Query } from '@kbn/es-query'; import { type DataPublicPluginStart } from '@kbn/data-plugin/public'; -import type { DataView, DataViewsContract } from '@kbn/data-views-plugin/common'; +import type { DataView, DataViewsContract, FieldSpec } from '@kbn/data-views-plugin/common'; import { getEsQueryConfig } from '@kbn/data-service/src/es_query'; import { reportPerformanceMetricEvent } from '@kbn/ebt-tools'; import { loadFieldExisting } from '../services/field_existing'; @@ -20,10 +20,12 @@ import { ExistenceFetchStatus } from '../types'; const getBuildEsQueryAsync = async () => (await import('@kbn/es-query')).buildEsQuery; const generateId = htmlIdGenerator(); +const DEFAULT_EMPTY_NEW_FIELDS: FieldSpec[] = []; export interface ExistingFieldsInfo { fetchStatus: ExistenceFetchStatus; existingFieldsByFieldNameMap: Record; + newFields?: FieldSpec[]; numberOfFetches: number; hasDataViewRestrictions?: boolean; } @@ -54,6 +56,7 @@ export interface ExistingFieldsReader { hasFieldData: (dataViewId: string, fieldName: string) => boolean; getFieldsExistenceStatus: (dataViewId: string) => ExistenceFetchStatus; isFieldsExistenceInfoUnavailable: (dataViewId: string) => boolean; + getNewFields: (dataViewId: string) => FieldSpec[]; } const initialData: ExistingFieldsByDataViewMap = {}; @@ -157,6 +160,7 @@ export const useExistingFieldsFetcher = ( } info.existingFieldsByFieldNameMap = booleanMap(existingFieldNames); + info.newFields = result.newFields; info.fetchStatus = ExistenceFetchStatus.succeeded; } catch (error) { info.fetchStatus = ExistenceFetchStatus.failed; @@ -286,6 +290,19 @@ export const useExistingFieldsReader: () => ExistingFieldsReader = () => { [existingFieldsByDataViewMap] ); + const getNewFields = useCallback( + (dataViewId: string) => { + const info = existingFieldsByDataViewMap[dataViewId]; + + if (info?.fetchStatus === ExistenceFetchStatus.succeeded) { + return info?.newFields ?? DEFAULT_EMPTY_NEW_FIELDS; + } + + return DEFAULT_EMPTY_NEW_FIELDS; + }, + [existingFieldsByDataViewMap] + ); + const getFieldsExistenceInfo = useCallback( (dataViewId: string) => { return dataViewId ? existingFieldsByDataViewMap[dataViewId] : unknownInfo; @@ -321,8 +338,9 @@ export const useExistingFieldsReader: () => ExistingFieldsReader = () => { hasFieldData, getFieldsExistenceStatus, isFieldsExistenceInfoUnavailable, + getNewFields, }), - [hasFieldData, getFieldsExistenceStatus, isFieldsExistenceInfoUnavailable] + [hasFieldData, getFieldsExistenceStatus, isFieldsExistenceInfoUnavailable, getNewFields] ); }; diff --git a/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.test.tsx b/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.test.tsx index 053e7d912d375..4a937f86bd5c0 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.test.tsx +++ b/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.test.tsx @@ -96,6 +96,7 @@ describe('UnifiedFieldList useGroupedFields()', () => { ? ExistenceFetchStatus.succeeded : ExistenceFetchStatus.unknown, isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== props.dataViewId, + getNewFields: () => [], }) ); @@ -156,6 +157,7 @@ describe('UnifiedFieldList useGroupedFields()', () => { ? ExistenceFetchStatus.succeeded : ExistenceFetchStatus.unknown, isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== props.dataViewId, + getNewFields: () => [], }) ); @@ -185,6 +187,8 @@ describe('UnifiedFieldList useGroupedFields()', () => { expect(fieldListGroupedProps.fieldsExistenceStatus).toBe(ExistenceFetchStatus.succeeded); expect(fieldListGroupedProps.fieldsExistInIndex).toBe(true); + expect(result.current.allFieldsModified).toBe(allFields); + expect(result.current.hasNewFields).toBe(false); rerender({ ...props, @@ -198,6 +202,82 @@ describe('UnifiedFieldList useGroupedFields()', () => { expect(result.current.fieldListGroupedProps.scrollToTopResetCounter).not.toBe( scrollToTopResetCounter1 ); + expect(result.current.allFieldsModified).toBe(allFields); + expect(result.current.hasNewFields).toBe(false); + + (ExistenceApi.useExistingFieldsReader as jest.Mock).mockRestore(); + }); + + it('should work correctly with new fields', async () => { + const props: GroupedFieldsParams = { + dataViewId: dataView.id!, + allFields, + services: mockedServices, + getNewFieldsBySpec: (spec) => spec.map((field) => new DataViewField(field)), + }; + + const newField = { name: 'test', type: 'keyword', searchable: true, aggregatable: true }; + + jest.spyOn(ExistenceApi, 'useExistingFieldsReader').mockImplementation( + (): ExistingFieldsReader => ({ + hasFieldData: (dataViewId) => { + return dataViewId === props.dataViewId; + }, + getFieldsExistenceStatus: (dataViewId) => + dataViewId === props.dataViewId + ? ExistenceFetchStatus.succeeded + : ExistenceFetchStatus.unknown, + isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== props.dataViewId, + getNewFields: () => [newField], + }) + ); + + const { result, waitForNextUpdate, rerender } = renderHook(useGroupedFields, { + initialProps: props, + }); + + await waitForNextUpdate(); + + let fieldListGroupedProps = result.current.fieldListGroupedProps; + const fieldGroups = fieldListGroupedProps.fieldGroups; + const scrollToTopResetCounter1 = fieldListGroupedProps.scrollToTopResetCounter; + + expect( + Object.keys(fieldGroups!).map( + (key) => `${key}-${fieldGroups![key as FieldsGroupNames]?.fields.length}` + ) + ).toStrictEqual([ + 'SpecialFields-0', + 'SelectedFields-0', + 'PopularFields-0', + 'AvailableFields-25', + 'UnmappedFields-1', + 'EmptyFields-0', + 'MetaFields-3', + ]); + + expect(fieldListGroupedProps.fieldsExistenceStatus).toBe(ExistenceFetchStatus.succeeded); + expect(fieldListGroupedProps.fieldsExistInIndex).toBe(true); + expect(result.current.allFieldsModified).toStrictEqual([ + ...allFields, + new DataViewField(newField), + ]); + expect(result.current.hasNewFields).toBe(true); + + rerender({ + ...props, + dataViewId: null, // for text-based queries + allFields, + }); + + fieldListGroupedProps = result.current.fieldListGroupedProps; + expect(fieldListGroupedProps.fieldsExistenceStatus).toBe(ExistenceFetchStatus.succeeded); + expect(fieldListGroupedProps.fieldsExistInIndex).toBe(true); + expect(result.current.fieldListGroupedProps.scrollToTopResetCounter).not.toBe( + scrollToTopResetCounter1 + ); + expect(result.current.allFieldsModified).toBe(allFields); + expect(result.current.hasNewFields).toBe(false); (ExistenceApi.useExistingFieldsReader as jest.Mock).mockRestore(); }); @@ -438,6 +518,7 @@ describe('UnifiedFieldList useGroupedFields()', () => { ? ExistenceFetchStatus.succeeded : ExistenceFetchStatus.unknown, isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== knownDataViewId, + getNewFields: () => [], }) ); diff --git a/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts b/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts index 16758ea4ee7f2..7853c7e67800b 100644 --- a/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts +++ b/packages/kbn-unified-field-list/src/hooks/use_grouped_fields.ts @@ -10,8 +10,9 @@ import { groupBy } from 'lodash'; import { useEffect, useMemo, useState } from 'react'; import { i18n } from '@kbn/i18n'; import { type CoreStart } from '@kbn/core-lifecycle-browser'; -import { type DataView, type DataViewField } from '@kbn/data-views-plugin/common'; +import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; import { type DataViewsContract } from '@kbn/data-views-plugin/public'; +import { type UseNewFieldsParams, useNewFields } from './use_new_fields'; import { type FieldListGroups, type FieldsGroup, @@ -41,6 +42,7 @@ export interface GroupedFieldsParams { onOverrideFieldGroupDetails?: OverrideFieldGroupDetails; onSupportedFieldFilter?: (field: T) => boolean; onSelectedFieldFilter?: (field: T) => boolean; + getNewFieldsBySpec?: UseNewFieldsParams['getNewFieldsBySpec']; } export interface GroupedFieldsResult { @@ -52,6 +54,8 @@ export interface GroupedFieldsResult { fieldsExistInIndex: boolean; screenReaderDescriptionId?: string; }; + allFieldsModified: T[] | null; // `null` is for loading indicator + hasNewFields: boolean; } export function useGroupedFields({ @@ -65,6 +69,7 @@ export function useGroupedFields({ onOverrideFieldGroupDetails, onSupportedFieldFilter, onSelectedFieldFilter, + getNewFieldsBySpec, }: GroupedFieldsParams): GroupedFieldsResult { const fieldsExistenceReader = useExistingFieldsReader(); const fieldListFilters = useFieldFilters({ @@ -73,6 +78,7 @@ export function useGroupedFields({ getCustomFieldType, onSupportedFieldFilter, }); + const onFilterFieldList = fieldListFilters.onFilterField; const [dataView, setDataView] = useState(null); const isAffectedByTimeFilter = Boolean(dataView?.timeFieldName); @@ -101,6 +107,13 @@ export function useGroupedFields({ // if field existence information changed, reload the data view too }, [dataViewId, services.dataViews, setDataView, hasFieldDataHandler]); + const { allFieldsModified, hasNewFields } = useNewFields({ + dataView, + allFields, + getNewFieldsBySpec, + fieldsExistenceReader, + }); + // important when switching from a known dataViewId to no data view (like in text-based queries) useEffect(() => { if (dataView && !dataViewId) { @@ -120,13 +133,16 @@ export function useGroupedFields({ }; const selectedFields = sortedSelectedFields || []; - const sortedFields = [...(allFields || [])].sort(sortFields); + + const sortedFields = [...(allFieldsModified || [])].sort(sortFields); + const groupedFields = { ...getDefaultFieldGroups(), ...groupBy(sortedFields, (field) => { if (!sortedSelectedFields && onSelectedFieldFilter && onSelectedFieldFilter(field)) { selectedFields.push(field); } + if (onSupportedFieldFilter && !onSupportedFieldFilter(field)) { return 'skippedFields'; } @@ -311,7 +327,7 @@ export function useGroupedFields({ return fieldGroupDefinitions; }, [ - allFields, + allFieldsModified, onSupportedFieldFilter, onSelectedFieldFilter, onOverrideFieldGroupDetails, @@ -381,6 +397,8 @@ export function useGroupedFields({ return { fieldListGroupedProps, fieldListFiltersProps: fieldListFilters.fieldListFiltersProps, + allFieldsModified, + hasNewFields, }; } diff --git a/packages/kbn-unified-field-list/src/hooks/use_new_fields.test.tsx b/packages/kbn-unified-field-list/src/hooks/use_new_fields.test.tsx new file mode 100644 index 0000000000000..2be5d50764bc9 --- /dev/null +++ b/packages/kbn-unified-field-list/src/hooks/use_new_fields.test.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 { renderHook } from '@testing-library/react-hooks'; +import { stubLogstashDataView as dataView } from '@kbn/data-views-plugin/common/data_view.stub'; +import { DataViewField } from '@kbn/data-views-plugin/common'; +import { useNewFields, type UseNewFieldsParams } from './use_new_fields'; +import { type ExistingFieldsReader } from './use_existing_fields'; +import { ExistenceFetchStatus } from '../types'; + +const fieldsExistenceReader: ExistingFieldsReader = { + hasFieldData: (dataViewId) => { + return dataViewId === dataView.id; + }, + getFieldsExistenceStatus: (dataViewId) => + dataViewId === dataView.id ? ExistenceFetchStatus.succeeded : ExistenceFetchStatus.unknown, + isFieldsExistenceInfoUnavailable: (dataViewId) => dataViewId !== dataView.id, + getNewFields: () => [], +}; + +describe('UnifiedFieldList useNewFields()', () => { + const allFields = dataView.fields; + + it('should work correctly in loading state', async () => { + const props: UseNewFieldsParams = { + dataView, + allFields: null, + fieldsExistenceReader, + }; + const { result } = renderHook(useNewFields, { + initialProps: props, + }); + + expect(result.current.allFieldsModified).toBe(null); + expect(result.current.hasNewFields).toBe(false); + }); + + it('should work correctly with empty new fields', async () => { + const props: UseNewFieldsParams = { + dataView, + allFields, + fieldsExistenceReader, + }; + const { result } = renderHook(useNewFields, { + initialProps: props, + }); + + expect(result.current.allFieldsModified).toBe(allFields); + expect(result.current.hasNewFields).toBe(false); + }); + + it('should work correctly with new fields', async () => { + const newField = { name: 'test', type: 'keyword', searchable: true, aggregatable: true }; + const newField2 = { ...newField, name: 'test2' }; + const props: UseNewFieldsParams = { + dataView, + allFields, + fieldsExistenceReader: { + ...fieldsExistenceReader, + getNewFields: () => [newField, newField2], + }, + getNewFieldsBySpec: (spec) => spec.map((field) => new DataViewField(field)), + }; + const { result } = renderHook(useNewFields, { + initialProps: props, + }); + + expect(result.current.allFieldsModified).toStrictEqual([ + ...allFields, + new DataViewField(newField), + new DataViewField(newField2), + ]); + expect(result.current.hasNewFields).toBe(true); + }); +}); diff --git a/packages/kbn-unified-field-list/src/hooks/use_new_fields.ts b/packages/kbn-unified-field-list/src/hooks/use_new_fields.ts new file mode 100644 index 0000000000000..51e143cc524c3 --- /dev/null +++ b/packages/kbn-unified-field-list/src/hooks/use_new_fields.ts @@ -0,0 +1,62 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { useMemo } from 'react'; +import type { FieldSpec } from '@kbn/data-views-plugin/common'; +import type { DataView, DataViewField } from '@kbn/data-views-plugin/common'; +import type { FieldListItem } from '../types'; +import type { ExistingFieldsReader } from './use_existing_fields'; + +export interface UseNewFieldsParams { + dataView?: DataView | null; + allFields: T[] | null; // `null` is for loading indicator + getNewFieldsBySpec?: (fields: FieldSpec[], dataView: DataView | null) => T[]; + fieldsExistenceReader: ExistingFieldsReader; +} + +export interface UseNewFieldsResult { + allFieldsModified: T[] | null; + hasNewFields: boolean; +} + +/** + * This hook is used to get the new fields of previous fields for wildcards request, and merges those + * with the existing fields. + */ +export function useNewFields({ + dataView, + allFields, + getNewFieldsBySpec, + fieldsExistenceReader, +}: UseNewFieldsParams): UseNewFieldsResult { + const dataViewId = dataView?.id; + + const newFields = useMemo(() => { + const newLoadedFields = + allFields && dataView?.id && getNewFieldsBySpec + ? getNewFieldsBySpec(fieldsExistenceReader.getNewFields(dataView?.id), dataView) + : null; + + return newLoadedFields?.length ? newLoadedFields : null; + }, [allFields, dataView, fieldsExistenceReader, getNewFieldsBySpec]); + + const hasNewFields = Boolean(allFields && newFields && newFields.length > 0); + + const allFieldsModified = useMemo(() => { + if (!allFields || !newFields?.length || !dataViewId) return allFields; + // Filtering out fields that e.g. Discover provides with fields that were provided by the previous fieldsForWildcards request + // These can be replaced by the new fields, which are mapped correctly, and therefore can be used in the right way + const allFieldsExlNew = allFields.filter( + (field) => !newFields.some((newField) => newField.name === field.name) + ); + + return [...allFieldsExlNew, ...newFields]; + }, [newFields, allFields, dataViewId]); + + return { allFieldsModified, hasNewFields }; +} diff --git a/packages/kbn-unified-field-list/src/hooks/use_sidebar_toggle.test.tsx b/packages/kbn-unified-field-list/src/hooks/use_sidebar_toggle.test.tsx deleted file mode 100644 index 16ee451400c6c..0000000000000 --- a/packages/kbn-unified-field-list/src/hooks/use_sidebar_toggle.test.tsx +++ /dev/null @@ -1,104 +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 { renderHook, act } from '@testing-library/react-hooks'; -import { useSidebarToggle } from './use_sidebar_toggle'; -import * as localStorageModule from 'react-use/lib/useLocalStorage'; - -jest.spyOn(localStorageModule, 'default'); - -describe('UnifiedFieldList useSidebarToggle', () => { - const stateService = { - creationOptions: { - originatingApp: 'test', - localStorageKeyPrefix: 'this', - }, - }; - - beforeEach(() => { - (localStorageModule.default as jest.Mock).mockClear(); - }); - - it('should toggle correctly', async () => { - const storeMock = jest.fn(); - (localStorageModule.default as jest.Mock).mockImplementation(() => { - return [false, storeMock]; - }); - - const { result } = renderHook(useSidebarToggle, { - initialProps: { - stateService, - }, - }); - - expect(result.current.isSidebarCollapsed).toBe(false); - - act(() => { - result.current.onToggleSidebar(true); - }); - - expect(result.current.isSidebarCollapsed).toBe(true); - expect(storeMock).toHaveBeenCalledWith(true); - - act(() => { - result.current.onToggleSidebar(false); - }); - - expect(result.current.isSidebarCollapsed).toBe(false); - expect(storeMock).toHaveBeenLastCalledWith(false); - }); - - it('should restore collapsed state and expand from it', async () => { - const storeMock = jest.fn(); - (localStorageModule.default as jest.Mock).mockImplementation(() => { - return [true, storeMock]; - }); - - const { result } = renderHook(useSidebarToggle, { - initialProps: { - stateService, - }, - }); - - expect(result.current.isSidebarCollapsed).toBe(true); - - act(() => { - result.current.onToggleSidebar(false); - }); - - expect(result.current.isSidebarCollapsed).toBe(false); - expect(storeMock).toHaveBeenCalledWith(false); - }); - - it('should not persist if local storage key is not defined', async () => { - const storeMock = jest.fn(); - (localStorageModule.default as jest.Mock).mockImplementation(() => { - return [false, storeMock]; - }); - - const { result } = renderHook(useSidebarToggle, { - initialProps: { - stateService: { - creationOptions: { - originatingApp: 'test', - localStorageKeyPrefix: undefined, - }, - }, - }, - }); - - expect(result.current.isSidebarCollapsed).toBe(false); - - act(() => { - result.current.onToggleSidebar(true); - }); - - expect(result.current.isSidebarCollapsed).toBe(true); - expect(storeMock).not.toHaveBeenCalled(); - }); -}); diff --git a/packages/kbn-unified-field-list/src/hooks/use_sidebar_toggle.ts b/packages/kbn-unified-field-list/src/hooks/use_sidebar_toggle.ts deleted file mode 100644 index b12c7dc7dae95..0000000000000 --- a/packages/kbn-unified-field-list/src/hooks/use_sidebar_toggle.ts +++ /dev/null @@ -1,64 +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 { useCallback, useState, useMemo } from 'react'; -import useLocalStorage from 'react-use/lib/useLocalStorage'; -import type { UnifiedFieldListSidebarContainerStateService } from '../types'; - -/** - * Hook params - */ -export interface UseSidebarToggleParams { - /** - * Service for managing the state - */ - stateService: UnifiedFieldListSidebarContainerStateService; -} - -/** - * Hook result type - */ -export interface UseSidebarToggleResult { - isSidebarCollapsed: boolean; - onToggleSidebar: (isSidebarCollapsed: boolean) => void; -} - -/** - * Hook for managing sidebar toggle state - * @param stateService - */ -export const useSidebarToggle = ({ - stateService, -}: UseSidebarToggleParams): UseSidebarToggleResult => { - const [initialIsSidebarCollapsed, storeIsSidebarCollapsed] = useLocalStorage( - `${stateService.creationOptions.localStorageKeyPrefix ?? 'unifiedFieldList'}:sidebarClosed`, // as legacy `discover:sidebarClosed` key - false - ); - const [isSidebarCollapsed, setIsSidebarCollapsed] = useState( - initialIsSidebarCollapsed ?? false - ); - - const onToggleSidebar = useCallback( - (isCollapsed) => { - setIsSidebarCollapsed(isCollapsed); - if (stateService.creationOptions.localStorageKeyPrefix) { - storeIsSidebarCollapsed(isCollapsed); - } - }, - [ - storeIsSidebarCollapsed, - setIsSidebarCollapsed, - stateService.creationOptions.localStorageKeyPrefix, - ] - ); - - return useMemo( - () => ({ isSidebarCollapsed, onToggleSidebar }), - [isSidebarCollapsed, onToggleSidebar] - ); -}; diff --git a/packages/kbn-unified-field-list/src/services/field_existing/field_existing_utils.ts b/packages/kbn-unified-field-list/src/services/field_existing/field_existing_utils.ts index 2aa6137ffb1fb..5cceb49cb5ecb 100644 --- a/packages/kbn-unified-field-list/src/services/field_existing/field_existing_utils.ts +++ b/packages/kbn-unified-field-list/src/services/field_existing/field_existing_utils.ts @@ -7,7 +7,7 @@ */ import type * as estypes from '@elastic/elasticsearch/lib/api/typesWithBodyKey'; -import { RuntimeField } from '@kbn/data-views-plugin/common'; +import type { DataViewField, RuntimeField } from '@kbn/data-views-plugin/common'; import type { DataViewsContract, DataView, FieldSpec } from '@kbn/data-views-plugin/common'; import type { IKibanaSearchRequest } from '@kbn/data-plugin/common'; @@ -49,15 +49,25 @@ export async function fetchFieldExistence({ metaFields: string[]; dataViewsService: DataViewsContract; }) { - const allFields = buildFieldList(dataView, metaFields); const existingFieldList = await dataViewsService.getFieldsForIndexPattern(dataView, { // filled in by data views service pattern: '', indexFilter: toQuery(timeFieldName, fromDate, toDate, dslQuery), }); + + // take care of fields of existingFieldList, that are not yet available + // in the given data view. Those fields we consider as new fields, + // that were ingested after the data view was loaded + const newFields = existingFieldList.filter((field) => !dataView.getFieldByName(field.name)); + // refresh the data view in case there are new fields + if (newFields.length) { + await dataViewsService.refreshFields(dataView, false, true); + } + const allFields = buildFieldList(dataView, metaFields); return { - indexPatternTitle: dataView.title, + indexPatternTitle: dataView.getIndexPattern(), existingFieldNames: existingFields(existingFieldList, allFields), + newFields, }; } @@ -66,19 +76,23 @@ export async function fetchFieldExistence({ */ export function buildFieldList(indexPattern: DataView, metaFields: string[]): Field[] { return indexPattern.fields.map((field) => { - return { - name: field.name, - isScript: !!field.scripted, - lang: field.lang, - script: field.script, - // id is a special case - it doesn't show up in the meta field list, - // but as it's not part of source, it has to be handled separately. - isMeta: metaFields?.includes(field.name) || field.name === '_id', - runtimeField: !field.isMapped ? field.runtimeField : undefined, - }; + return buildField(field, metaFields); }); } +export function buildField(field: DataViewField, metaFields: string[]): Field { + return { + name: field.name, + isScript: !!field.scripted, + lang: field.lang, + script: field.script, + // id is a special case - it doesn't show up in the meta field list, + // but as it's not part of source, it has to be handled separately. + isMeta: metaFields?.includes(field.name) || field.name === '_id', + runtimeField: !field.isMapped ? field.runtimeField : undefined, + }; +} + function toQuery( timeFieldName: string | undefined, fromDate: string | undefined, diff --git a/packages/kbn-unified-field-list/src/services/field_existing/load_field_existing.ts b/packages/kbn-unified-field-list/src/services/field_existing/load_field_existing.ts index 796062bc60559..590bc46eff573 100644 --- a/packages/kbn-unified-field-list/src/services/field_existing/load_field_existing.ts +++ b/packages/kbn-unified-field-list/src/services/field_existing/load_field_existing.ts @@ -9,7 +9,7 @@ import { IUiSettingsClient } from '@kbn/core/public'; import { type DataPublicPluginStart } from '@kbn/data-plugin/public'; import { UI_SETTINGS } from '@kbn/data-service/src/constants'; -import type { DataView, DataViewsContract } from '@kbn/data-views-plugin/common'; +import type { DataView, DataViewsContract, FieldSpec } from '@kbn/data-views-plugin/common'; import { lastValueFrom } from 'rxjs'; import { fetchFieldExistence } from './field_existing_utils'; @@ -27,6 +27,7 @@ interface FetchFieldExistenceParams { export type LoadFieldExistingHandler = (params: FetchFieldExistenceParams) => Promise<{ existingFieldNames: string[]; indexPatternTitle: string; + newFields?: FieldSpec[]; }>; export const loadFieldExisting: LoadFieldExistingHandler = async ({ diff --git a/packages/kbn-url-state/index.ts b/packages/kbn-url-state/index.ts index 17c90fdc8d2aa..7bfb80938c659 100644 --- a/packages/kbn-url-state/index.ts +++ b/packages/kbn-url-state/index.ts @@ -9,20 +9,7 @@ import { useCallback, useEffect, useState } from 'react'; import { encode, decode, RisonValue } from '@kbn/rison'; import { stringify, parse } from 'query-string'; - -interface StateCache { - namespaces: Record>; - timeoutHandle: number; -} - -/** - * Temporary cache for state stored in the URL. This will be serialized to the URL - * in a single batched update to avoid excessive history entries. - */ -const cache: StateCache = { - namespaces: {}, - timeoutHandle: 0, -}; +import { merge } from 'lodash'; const CUSTOM_URL_EVENT = 'url:update' as const; @@ -45,10 +32,6 @@ const URL_CHANGE_EVENTS: string[] = ['popstate', CUSTOM_URL_EVENT]; * @param key sub key of the query param */ export const useUrlState = (urlNamespace: string, key: string) => { - if (!cache.namespaces[urlNamespace]) { - cache.namespaces[urlNamespace] = {}; - } - const [internalValue, setInternalValue] = useState(undefined); useEffect(() => { @@ -60,7 +43,6 @@ export const useUrlState = (urlNamespace: string, key: string) => { const decodedState = param ? decode(param) : ({} as Record); const decodedValue = (decodedState as Record | undefined)?.[key]; - cache.namespaces[urlNamespace][key] = decodedValue; setInternalValue(decodedValue as unknown as T); }; @@ -72,50 +54,45 @@ export const useUrlState = (urlNamespace: string, key: string) => { }, [key, urlNamespace]); const setValue = useCallback( - (updatedValue: T | undefined) => { - const currentValue = cache.namespaces[urlNamespace][key]; + (newValue: T | undefined) => { + const queryParams = parse(location.search) as any; + const currentNsValue = ( + queryParams?.[urlNamespace] ? decode(queryParams?.[urlNamespace]) : {} + ) as any; + + const currentValue = currentNsValue?.[key]; const canSpread = - typeof updatedValue === 'object' && + typeof newValue === 'object' && typeof currentValue === 'object' && - !Array.isArray(updatedValue) && + !Array.isArray(newValue) && !Array.isArray(currentValue); - cache.namespaces[urlNamespace][key] = canSpread - ? ({ ...currentValue, ...updatedValue } as unknown as T) - : (updatedValue as unknown as T); + const upatedValueToStoreAtKey = canSpread + ? (merge(currentValue, newValue) as unknown as T) + : (newValue as unknown as T); - // This batches updates to the URL state to avoid excessive history entries - if (cache.timeoutHandle) { - window.clearTimeout(cache.timeoutHandle); + if (upatedValueToStoreAtKey) { + currentNsValue[key] = upatedValueToStoreAtKey; + } else { + delete currentNsValue[key]; } - // The push state call is delayed to make sure that multiple calls to setValue - // within a short period of time are batched together. - cache.timeoutHandle = window.setTimeout(() => { - const searchParams = parse(location.search); + queryParams[urlNamespace] = encodeURIComponent(encode(currentNsValue)); - for (const ns in cache.namespaces) { - if (!Object.prototype.hasOwnProperty.call(cache.namespaces, ns)) { - continue; - } - searchParams[ns] = encodeURIComponent(encode(cache.namespaces[ns])); - } + // NOTE: don't re-encode the entire url params string + const newSearch = stringify(queryParams, { encode: false }); - // NOTE: don't re-encode the entire url params string - const newSearch = stringify(searchParams, { encode: false }); - - if (window.location.search === newSearch) { - return; - } + if (window.location.search === newSearch) { + return; + } - const newUrl = `${window.location.hash}?${newSearch}`; + const newUrl = `${window.location.hash}?${newSearch}`; - window.history.pushState({}, '', newUrl); - // This custom event is used to notify other instances - // of this hook that the URL has changed. - window.dispatchEvent(new Event(CUSTOM_URL_EVENT)); - }, 0); + window.history.pushState({}, '', newUrl); + // This custom event is used to notify other instances + // of this hook that the URL has changed. + window.dispatchEvent(new Event(CUSTOM_URL_EVENT)); }, [key, urlNamespace] ); diff --git a/packages/presentation/presentation_containers/README.md b/packages/presentation/presentation_containers/README.md new file mode 100644 index 0000000000000..4f85678f53b69 --- /dev/null +++ b/packages/presentation/presentation_containers/README.md @@ -0,0 +1,3 @@ +# @kbn/presentation-containers + +Contains interfaces and type guards which can be used to define and consume "containers" which are pages or elements which render multiple panels. diff --git a/packages/presentation/presentation_containers/index.ts b/packages/presentation/presentation_containers/index.ts new file mode 100644 index 0000000000000..eae0e6c7f4f3a --- /dev/null +++ b/packages/presentation/presentation_containers/index.ts @@ -0,0 +1,22 @@ +/* + * 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 { + apiCanDuplicatePanels, + apiCanExpandPanels, + useExpandedPanelId, + type CanDuplicatePanels, + type CanExpandPanels, +} from './interfaces/panel_management'; +export { + apiIsPresentationContainer, + getContainerParentFromAPI, + type PanelPackage, + type PresentationContainer, +} from './interfaces/presentation_container'; +export { tracksOverlays, type TracksOverlays } from './interfaces/tracks_overlays'; diff --git a/packages/presentation/presentation_containers/interfaces/panel_management.ts b/packages/presentation/presentation_containers/interfaces/panel_management.ts new file mode 100644 index 0000000000000..feb752ea81655 --- /dev/null +++ b/packages/presentation/presentation_containers/interfaces/panel_management.ts @@ -0,0 +1,39 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +import { + PublishingSubject, + useStateFromPublishingSubject, +} from '@kbn/presentation-publishing/publishing_subject'; + +export interface CanDuplicatePanels { + duplicatePanel: (panelId: string) => void; +} + +export const apiCanDuplicatePanels = ( + unknownApi: unknown | null +): unknownApi is CanDuplicatePanels => { + return Boolean((unknownApi as CanDuplicatePanels)?.duplicatePanel !== undefined); +}; + +export interface CanExpandPanels { + expandPanel: (panelId?: string) => void; + expandedPanelId: PublishingSubject; +} + +export const apiCanExpandPanels = (unknownApi: unknown | null): unknownApi is CanExpandPanels => { + return Boolean((unknownApi as CanExpandPanels)?.expandPanel !== undefined); +}; + +/** + * Gets this API's expanded panel state as a reactive variable which will cause re-renders on change. + */ +export const useExpandedPanelId = (api: Partial | undefined) => + useStateFromPublishingSubject( + apiCanExpandPanels(api) ? api.expandedPanelId : undefined + ); diff --git a/packages/presentation/presentation_containers/interfaces/presentation_container.ts b/packages/presentation/presentation_containers/interfaces/presentation_container.ts new file mode 100644 index 0000000000000..960d728630bc4 --- /dev/null +++ b/packages/presentation/presentation_containers/interfaces/presentation_container.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 { apiHasParentApi, PublishesViewMode } from '@kbn/presentation-publishing'; + +export interface PanelPackage { + panelType: string; + initialState: unknown; +} +export interface PresentationContainer extends Partial { + removePanel: (panelId: string) => void; + canRemovePanels?: () => boolean; + replacePanel: (idToRemove: string, newPanel: PanelPackage) => Promise; +} + +export const apiIsPresentationContainer = ( + unknownApi: unknown | null +): unknownApi is PresentationContainer => { + return Boolean((unknownApi as PresentationContainer)?.removePanel !== undefined); +}; + +export const getContainerParentFromAPI = ( + api: null | unknown +): PresentationContainer | undefined => { + const apiParent = apiHasParentApi(api) ? api.parentApi : null; + if (!apiParent) return undefined; + return apiIsPresentationContainer(apiParent) ? apiParent : undefined; +}; diff --git a/packages/presentation/presentation_containers/interfaces/tracks_overlays.ts b/packages/presentation/presentation_containers/interfaces/tracks_overlays.ts new file mode 100644 index 0000000000000..ee31c10a59665 --- /dev/null +++ b/packages/presentation/presentation_containers/interfaces/tracks_overlays.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 { OverlayRef } from '@kbn/core-mount-utils-browser'; + +interface TracksOverlaysOptions { + /** + * If present, the panel with this ID will be focused when the overlay is opened. This can be used in tandem with a push + * flyout to edit a panel's settings in context + */ + focusedPanelId?: string; +} + +export interface TracksOverlays { + openOverlay: (ref: OverlayRef, options?: TracksOverlaysOptions) => void; + clearOverlays: () => void; +} + +export const tracksOverlays = (root: unknown): root is TracksOverlays => { + return Boolean( + root && (root as TracksOverlays).openOverlay && (root as TracksOverlays).clearOverlays + ); +}; diff --git a/packages/presentation/presentation_containers/jest.config.js b/packages/presentation/presentation_containers/jest.config.js new file mode 100644 index 0000000000000..81db1bc276559 --- /dev/null +++ b/packages/presentation/presentation_containers/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/presentation/presentation_containers'], +}; diff --git a/packages/presentation/presentation_containers/kibana.jsonc b/packages/presentation/presentation_containers/kibana.jsonc new file mode 100644 index 0000000000000..77aef11b4df52 --- /dev/null +++ b/packages/presentation/presentation_containers/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/presentation-containers", + "owner": "@elastic/kibana-presentation" +} diff --git a/packages/presentation/presentation_containers/package.json b/packages/presentation/presentation_containers/package.json new file mode 100644 index 0000000000000..da56a4a9ee0e4 --- /dev/null +++ b/packages/presentation/presentation_containers/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/presentation-containers", + "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/presentation/presentation_containers/tsconfig.json b/packages/presentation/presentation_containers/tsconfig.json new file mode 100644 index 0000000000000..84f28c7bc60c3 --- /dev/null +++ b/packages/presentation/presentation_containers/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": ["jest", "node", "react"] + }, + "include": ["**/*.ts", "**/*.tsx"], + "exclude": ["target/**/*"], + "kbn_references": ["@kbn/presentation-publishing", "@kbn/core-mount-utils-browser"] +} diff --git a/packages/presentation/presentation_library/README.md b/packages/presentation/presentation_library/README.md new file mode 100644 index 0000000000000..9201a647600fc --- /dev/null +++ b/packages/presentation/presentation_library/README.md @@ -0,0 +1,3 @@ +# @kbn/presentation-library + +Contains interfaces and type guards to be used to mediate the relationship between panels / charts, and a content library. diff --git a/packages/presentation/presentation_library/index.ts b/packages/presentation/presentation_library/index.ts new file mode 100644 index 0000000000000..4d7e1e41b0671 --- /dev/null +++ b/packages/presentation/presentation_library/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 { type CanLinkToLibrary, apiCanLinkToLibrary } from './interfaces/can_link_to_library'; +export { + type CanUnlinkFromLibrary, + apiCanUnlinkFromLibrary, +} from './interfaces/can_unlink_from_library'; diff --git a/packages/presentation/presentation_library/interfaces/can_link_to_library.ts b/packages/presentation/presentation_library/interfaces/can_link_to_library.ts new file mode 100644 index 0000000000000..7d09dd96e8b54 --- /dev/null +++ b/packages/presentation/presentation_library/interfaces/can_link_to_library.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export interface CanLinkToLibrary { + canLinkToLibrary: () => Promise; + linkToLibrary: () => Promise; +} + +export const apiCanLinkToLibrary = (api: unknown): api is CanLinkToLibrary => + typeof (api as CanLinkToLibrary).canLinkToLibrary === 'function' && + typeof (api as CanLinkToLibrary).linkToLibrary === 'function'; diff --git a/packages/presentation/presentation_library/interfaces/can_unlink_from_library.ts b/packages/presentation/presentation_library/interfaces/can_unlink_from_library.ts new file mode 100644 index 0000000000000..e2ae44712cdc7 --- /dev/null +++ b/packages/presentation/presentation_library/interfaces/can_unlink_from_library.ts @@ -0,0 +1,16 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export interface CanUnlinkFromLibrary { + canUnlinkFromLibrary: () => Promise; + unlinkFromLibrary: () => Promise; +} + +export const apiCanUnlinkFromLibrary = (api: unknown): api is CanUnlinkFromLibrary => + typeof (api as CanUnlinkFromLibrary).canUnlinkFromLibrary === 'function' && + typeof (api as CanUnlinkFromLibrary).unlinkFromLibrary === 'function'; diff --git a/packages/presentation/presentation_library/jest.config.js b/packages/presentation/presentation_library/jest.config.js new file mode 100644 index 0000000000000..3c6a5dd815b69 --- /dev/null +++ b/packages/presentation/presentation_library/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/presentation/presentation_library'], +}; diff --git a/packages/presentation/presentation_library/kibana.jsonc b/packages/presentation/presentation_library/kibana.jsonc new file mode 100644 index 0000000000000..a34f520c0bb00 --- /dev/null +++ b/packages/presentation/presentation_library/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/presentation-library", + "owner": "@elastic/kibana-presentation" +} diff --git a/packages/presentation/presentation_library/package.json b/packages/presentation/presentation_library/package.json new file mode 100644 index 0000000000000..4c9a053aed2bb --- /dev/null +++ b/packages/presentation/presentation_library/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/presentation-library", + "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/presentation/presentation_library/tsconfig.json b/packages/presentation/presentation_library/tsconfig.json new file mode 100644 index 0000000000000..da5e9144757c4 --- /dev/null +++ b/packages/presentation/presentation_library/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../../../tsconfig.base.json", + "compilerOptions": { + "outDir": "target/types", + "types": ["jest", "node", "react"] + }, + "include": ["**/*.ts", "**/*.tsx"], + "exclude": ["target/**/*"], + "kbn_references": [] +} diff --git a/packages/presentation/presentation_publishing/README.md b/packages/presentation/presentation_publishing/README.md new file mode 100644 index 0000000000000..c07e0ffa3dda4 --- /dev/null +++ b/packages/presentation/presentation_publishing/README.md @@ -0,0 +1,3 @@ +# @kbn/presentation-publishing + +Contains interfaces and type guards to be used to publish and consume state of specific types. diff --git a/packages/presentation/presentation_publishing/index.ts b/packages/presentation/presentation_publishing/index.ts new file mode 100644 index 0000000000000..a50763b7b2098 --- /dev/null +++ b/packages/presentation/presentation_publishing/index.ts @@ -0,0 +1,100 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export interface EmbeddableApiContext { + embeddable: unknown; +} + +export { + apiCanAccessViewMode, + getInheritedViewMode, + getViewModeSubject, + useInheritedViewMode, + type CanAccessViewMode, +} from './interfaces/can_access_view_mode'; +export { + apiPublishesPhaseEvents, + type PublishesPhaseEvents, + type PhaseEvent, + type PhaseEventType, +} from './interfaces/publishes_phase_events'; +export { hasEditCapabilities, type HasEditCapabilities } from './interfaces/has_edit_capabilities'; +export { apiHasParentApi, type HasParentApi } from './interfaces/has_parent_api'; +export { + apiHasType, + apiIsOfType, + type HasType, + type HasTypeDisplayName, +} from './interfaces/has_type'; +export { + apiPublishesBlockingError, + useBlockingError, + type PublishesBlockingError, +} from './interfaces/publishes_blocking_error'; +export { + apiPublishesDataLoading, + useDataLoading, + type PublishesDataLoading, +} from './interfaces/publishes_data_loading'; +export { + apiPublishesDataViews, + useDataViews, + type PublishesDataViews, +} from './interfaces/publishes_data_views'; +export { + apiPublishesDisabledActionIds, + useDisabledActionIds, + type PublishesDisabledActionIds, +} from './interfaces/publishes_disabled_action_ids'; +export { + apiPublishesLocalUnifiedSearch, + apiPublishesPartialLocalUnifiedSearch, + apiPublishesWritableLocalUnifiedSearch, + useLocalFilters, + useLocalQuery, + useLocalTimeRange, + type PublishesLocalUnifiedSearch, + type PublishesWritableLocalUnifiedSearch, +} from './interfaces/publishes_local_unified_search'; +export { + apiPublishesPanelDescription, + apiPublishesWritablePanelDescription, + useDefaultPanelDescription, + usePanelDescription, + type PublishesPanelDescription, + type PublishesWritablePanelDescription, +} from './interfaces/publishes_panel_description'; +export { + apiPublishesPanelTitle, + apiPublishesWritablePanelTitle, + useDefaultPanelTitle, + useHidePanelTitle, + usePanelTitle, + type PublishesPanelTitle, + type PublishesWritablePanelTitle, +} from './interfaces/publishes_panel_title'; +export { + apiPublishesSavedObjectId, + useSavedObjectId, + type PublishesSavedObjectId, +} from './interfaces/publishes_saved_object_id'; +export { apiHasUniqueId, type HasUniqueId } from './interfaces/has_uuid'; +export { + apiPublishesViewMode, + apiPublishesWritableViewMode, + useViewMode, + type PublishesViewMode, + type PublishesWritableViewMode, + type ViewMode, +} from './interfaces/publishes_view_mode'; +export { + useBatchedPublishingSubjects, + useStateFromPublishingSubject, + usePublishingSubject, + type PublishingSubject, +} from './publishing_subject'; diff --git a/packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts b/packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts new file mode 100644 index 0000000000000..c838d9f1ee573 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/can_access_view_mode.ts @@ -0,0 +1,54 @@ +/* + * 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 { useStateFromPublishingSubject } from '../publishing_subject'; +import { apiHasParentApi, HasParentApi } from './has_parent_api'; +import { apiPublishesViewMode, PublishesViewMode, ViewMode } from './publishes_view_mode'; + +/** + * This API can access a view mode, either its own or from its parent API. + */ +export type CanAccessViewMode = + | Partial + | Partial>>; + +/** + * A type guard which can be used to determine if a given API has access to a view mode, its own or from its parent. + */ +export const apiCanAccessViewMode = (api: unknown): api is CanAccessViewMode => { + return apiPublishesViewMode(api) || (apiHasParentApi(api) && apiPublishesViewMode(api.parentApi)); +}; + +/** + * A function which will get the view mode from the API or the parent API. if this api has a view mode AND its + * parent has a view mode, we consider the APIs version the source of truth. + */ +export const getInheritedViewMode = (api?: CanAccessViewMode) => { + if (apiPublishesViewMode(api)) return api.viewMode.getValue(); + if (apiHasParentApi(api) && apiPublishesViewMode(api.parentApi)) { + return api.parentApi.viewMode.getValue(); + } +}; + +export const getViewModeSubject = (api?: CanAccessViewMode) => { + if (apiPublishesViewMode(api)) return api.viewMode; + if (apiHasParentApi(api) && apiPublishesViewMode(api.parentApi)) { + return api.parentApi.viewMode; + } +}; + +/** + * A hook that gets a view mode from this API or its parent as a reactive variable which will cause re-renders on change. + * if this api has a view mode AND its parent has a view mode, we consider the APIs version the source of truth. + */ +export const useInheritedViewMode = ( + api: ApiType | undefined +) => { + const subject = getViewModeSubject(api); + useStateFromPublishingSubject(subject); +}; diff --git a/packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts b/packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts new file mode 100644 index 0000000000000..24ce82529419c --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/has_edit_capabilities.ts @@ -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. + */ + +import { HasTypeDisplayName } from './has_type'; + +/** + * An interface which determines whether or not a given API is editable. + * In order to be editable, the api requires an edit function to execute the action + * a getTypeDisplayName function to display to the user which type of chart is being + * edited, and an isEditingEnabled function. + */ +export interface HasEditCapabilities extends HasTypeDisplayName { + onEdit: () => void; + isEditingEnabled: () => boolean; + getEditHref?: () => string | undefined; +} + +/** + * A type guard which determines whether or not a given API is editable. + */ +export const hasEditCapabilities = (root: unknown): root is HasEditCapabilities => { + return Boolean( + root && + (root as HasEditCapabilities).onEdit && + typeof (root as HasEditCapabilities).onEdit === 'function' && + (root as HasEditCapabilities).getTypeDisplayName && + typeof (root as HasEditCapabilities).getTypeDisplayName === 'function' && + (root as HasEditCapabilities).isEditingEnabled && + typeof (root as HasEditCapabilities).isEditingEnabled === 'function' + ); +}; diff --git a/packages/presentation/presentation_publishing/interfaces/has_parent_api.ts b/packages/presentation/presentation_publishing/interfaces/has_parent_api.ts new file mode 100644 index 0000000000000..699498b1f2708 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/has_parent_api.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. + */ + +export interface HasParentApi { + parentApi: ParentApiType; +} + +/** + * A type guard which checks whether or not a given API has a parent API. + */ +export const apiHasParentApi = (unknownApi: null | unknown): unknownApi is HasParentApi => { + return Boolean(unknownApi && (unknownApi as HasParentApi)?.parentApi !== undefined); +}; diff --git a/packages/presentation/presentation_publishing/interfaces/has_type.ts b/packages/presentation/presentation_publishing/interfaces/has_type.ts new file mode 100644 index 0000000000000..b608dd4ed2ba6 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/has_type.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. + */ + +export interface HasType { + type: T; +} + +export interface HasTypeDisplayName { + getTypeDisplayName: () => string; + getTypeDisplayNameLowerCase?: () => string; +} + +export const apiHasType = (api: unknown | null): api is HasType => { + return Boolean(api && (api as HasType).type); +}; + +export const apiIsOfType = ( + api: unknown | null, + typeToCheck: string +): api is HasType => { + return Boolean(api && (api as HasType).type) && (api as HasType).type === typeToCheck; +}; diff --git a/packages/presentation/presentation_publishing/interfaces/has_uuid.ts b/packages/presentation/presentation_publishing/interfaces/has_uuid.ts new file mode 100644 index 0000000000000..cebb9f1f5b0c6 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/has_uuid.ts @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export interface HasUniqueId { + uuid: string; +} + +export const apiHasUniqueId = (unknownApi: null | unknown): unknownApi is HasUniqueId => { + return Boolean(unknownApi && (unknownApi as HasUniqueId)?.uuid !== undefined); +}; diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts b/packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.ts new file mode 100644 index 0000000000000..578c75f21fe22 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_blocking_error.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 { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +export interface PublishesBlockingError { + blockingError: PublishingSubject; +} + +export const apiPublishesBlockingError = ( + unknownApi: null | unknown +): unknownApi is PublishesBlockingError => { + return Boolean(unknownApi && (unknownApi as PublishesBlockingError)?.blockingError !== undefined); +}; + +/** + * Gets this API's fatal error as a reactive variable which will cause re-renders on change. + */ +export const useBlockingError = (api: Partial | undefined) => + useStateFromPublishingSubject( + api?.blockingError + ); diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts b/packages/presentation/presentation_publishing/interfaces/publishes_data_loading.ts new file mode 100644 index 0000000000000..6f988167807f3 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_data_loading.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 { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +export interface PublishesDataLoading { + dataLoading: PublishingSubject; +} + +export const apiPublishesDataLoading = ( + unknownApi: null | unknown +): unknownApi is PublishesDataLoading => { + return Boolean(unknownApi && (unknownApi as PublishesDataLoading)?.dataLoading !== undefined); +}; + +/** + * Gets this API's data loading state as a reactive variable which will cause re-renders on change. + */ +export const useDataLoading = (api: Partial | undefined) => + useStateFromPublishingSubject( + apiPublishesDataLoading(api) ? api.dataLoading : undefined + ); diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts b/packages/presentation/presentation_publishing/interfaces/publishes_data_views.ts new file mode 100644 index 0000000000000..b83037a52c1e0 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_data_views.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 { DataView } from '@kbn/data-views-plugin/common'; +import { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +export interface PublishesDataViews { + dataViews: PublishingSubject; +} + +export const apiPublishesDataViews = ( + unknownApi: null | unknown +): unknownApi is PublishesDataViews => { + return Boolean(unknownApi && (unknownApi as PublishesDataViews)?.dataViews !== undefined); +}; + +/** + * Gets this API's data views as a reactive variable which will cause re-renders on change. + */ +export const useDataViews = (api: Partial | undefined) => + useStateFromPublishingSubject( + apiPublishesDataViews(api) ? api.dataViews : undefined + ); diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts b/packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.ts new file mode 100644 index 0000000000000..69f76070f369e --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_disabled_action_ids.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 { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +export interface PublishesDisabledActionIds { + disabledActionIds: PublishingSubject; + getAllTriggersDisabled?: () => boolean; +} + +/** + * A type guard which checks whether or not a given API publishes Disabled Action IDs. This can be used + * to programatically limit which actions are available on a per-API basis. + */ +export const apiPublishesDisabledActionIds = ( + unknownApi: null | unknown +): unknownApi is PublishesDisabledActionIds => { + return Boolean( + unknownApi && (unknownApi as PublishesDisabledActionIds)?.disabledActionIds !== undefined + ); +}; + +/** + * Gets this API's disabled action IDs as a reactive variable which will cause re-renders on change. + */ +export const useDisabledActionIds = (api: Partial | undefined) => + useStateFromPublishingSubject< + string[] | undefined, + PublishesDisabledActionIds['disabledActionIds'] + >(api?.disabledActionIds); diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts b/packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts new file mode 100644 index 0000000000000..c5f163206d81d --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_local_unified_search.ts @@ -0,0 +1,77 @@ +/* + * 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 { TimeRange, Filter, Query, AggregateQuery } from '@kbn/es-query'; +import { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +export interface PublishesLocalUnifiedSearch { + isCompatibleWithLocalUnifiedSearch?: () => boolean; + localTimeRange: PublishingSubject; + getFallbackTimeRange?: () => TimeRange | undefined; + localFilters: PublishingSubject; + localQuery: PublishingSubject; +} + +export type PublishesWritableLocalUnifiedSearch = PublishesLocalUnifiedSearch & { + setLocalTimeRange: (timeRange: TimeRange | undefined) => void; + setLocalFilters: (filters: Filter[] | undefined) => void; + setLocalQuery: (query: Query | undefined) => void; +}; + +export const apiPublishesLocalUnifiedSearch = ( + unknownApi: null | unknown +): unknownApi is PublishesLocalUnifiedSearch => { + return Boolean( + unknownApi && + (unknownApi as PublishesLocalUnifiedSearch)?.localTimeRange !== undefined && + (unknownApi as PublishesLocalUnifiedSearch)?.localFilters !== undefined && + (unknownApi as PublishesLocalUnifiedSearch)?.localQuery !== undefined + ); +}; + +export const apiPublishesPartialLocalUnifiedSearch = ( + unknownApi: null | unknown +): unknownApi is Partial => { + return Boolean( + (unknownApi && (unknownApi as PublishesLocalUnifiedSearch)?.localTimeRange !== undefined) || + (unknownApi as PublishesLocalUnifiedSearch)?.localFilters !== undefined || + (unknownApi as PublishesLocalUnifiedSearch)?.localQuery !== undefined + ); +}; + +export const apiPublishesWritableLocalUnifiedSearch = ( + unknownApi: null | unknown +): unknownApi is PublishesWritableLocalUnifiedSearch => { + return ( + apiPublishesLocalUnifiedSearch(unknownApi) && + (unknownApi as PublishesWritableLocalUnifiedSearch).setLocalTimeRange !== undefined && + typeof (unknownApi as PublishesWritableLocalUnifiedSearch).setLocalTimeRange === 'function' && + (unknownApi as PublishesWritableLocalUnifiedSearch).setLocalFilters !== undefined && + typeof (unknownApi as PublishesWritableLocalUnifiedSearch).setLocalFilters === 'function' && + (unknownApi as PublishesWritableLocalUnifiedSearch).setLocalQuery !== undefined && + typeof (unknownApi as PublishesWritableLocalUnifiedSearch).setLocalQuery === 'function' + ); +}; + +/** + * A hook that gets this API's local time range as a reactive variable which will cause re-renders on change. + */ +export const useLocalTimeRange = (api: Partial | undefined) => + useStateFromPublishingSubject(api?.localTimeRange); + +/** + * A hook that gets this API's local filters as a reactive variable which will cause re-renders on change. + */ +export const useLocalFilters = (api: Partial | undefined) => + useStateFromPublishingSubject(api?.localFilters); + +/** + * A hook that gets this API's local query as a reactive variable which will cause re-renders on change. + */ +export const useLocalQuery = (api: Partial | undefined) => + useStateFromPublishingSubject(api?.localQuery); diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts b/packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts new file mode 100644 index 0000000000000..1f12c35217c2e --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_panel_description.ts @@ -0,0 +1,53 @@ +/* + * 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 { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +export interface PublishesPanelDescription { + panelDescription: PublishingSubject; + defaultPanelDescription?: PublishingSubject; +} + +export type PublishesWritablePanelDescription = PublishesPanelDescription & { + setPanelDescription: (newTitle: string | undefined) => void; +}; + +export const apiPublishesPanelDescription = ( + unknownApi: null | unknown +): unknownApi is PublishesPanelDescription => { + return Boolean( + unknownApi && (unknownApi as PublishesPanelDescription)?.panelDescription !== undefined + ); +}; + +export const apiPublishesWritablePanelDescription = ( + unknownApi: null | unknown +): unknownApi is PublishesWritablePanelDescription => { + return ( + apiPublishesPanelDescription(unknownApi) && + (unknownApi as PublishesWritablePanelDescription).setPanelDescription !== undefined && + typeof (unknownApi as PublishesWritablePanelDescription).setPanelDescription === 'function' + ); +}; + +/** + * A hook that gets this API's panel description as a reactive variable which will cause re-renders on change. + */ +export const usePanelDescription = (api: Partial | undefined) => + useStateFromPublishingSubject( + api?.panelDescription + ); + +/** + * A hook that gets this API's default panel description as a reactive variable which will cause re-renders on change. + */ +export const useDefaultPanelDescription = (api: Partial | undefined) => + useStateFromPublishingSubject< + string | undefined, + PublishesPanelDescription['defaultPanelDescription'] + >(api?.defaultPanelDescription); diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts b/packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts new file mode 100644 index 0000000000000..b2be97926fb5a --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_panel_title.ts @@ -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 { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +export interface PublishesPanelTitle { + panelTitle: PublishingSubject; + hidePanelTitle: PublishingSubject; + defaultPanelTitle?: PublishingSubject; +} + +export type PublishesWritablePanelTitle = PublishesPanelTitle & { + setPanelTitle: (newTitle: string | undefined) => void; + setHidePanelTitle: (hide: boolean | undefined) => void; + setDefaultPanelTitle?: (newDefaultTitle: string | undefined) => void; +}; + +export const apiPublishesPanelTitle = ( + unknownApi: null | unknown +): unknownApi is PublishesPanelTitle => { + return Boolean( + unknownApi && + (unknownApi as PublishesPanelTitle)?.panelTitle !== undefined && + (unknownApi as PublishesPanelTitle)?.hidePanelTitle !== undefined + ); +}; + +export const apiPublishesWritablePanelTitle = ( + unknownApi: null | unknown +): unknownApi is PublishesWritablePanelTitle => { + return ( + apiPublishesPanelTitle(unknownApi) && + (unknownApi as PublishesWritablePanelTitle).setPanelTitle !== undefined && + (typeof (unknownApi as PublishesWritablePanelTitle).setPanelTitle === 'function' && + (unknownApi as PublishesWritablePanelTitle).setHidePanelTitle) !== undefined && + typeof (unknownApi as PublishesWritablePanelTitle).setHidePanelTitle === 'function' + ); +}; + +/** + * A hook that gets this API's panel title as a reactive variable which will cause re-renders on change. + */ +export const usePanelTitle = (api: Partial | undefined) => + useStateFromPublishingSubject(api?.panelTitle); + +/** + * A hook that gets this API's hide panel title setting as a reactive variable which will cause re-renders on change. + */ +export const useHidePanelTitle = (api: Partial | undefined) => + useStateFromPublishingSubject(api?.hidePanelTitle); + +/** + * A hook that gets this API's default title as a reactive variable which will cause re-renders on change. + */ +export const useDefaultPanelTitle = (api: Partial | undefined) => + useStateFromPublishingSubject(api?.defaultPanelTitle); diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts b/packages/presentation/presentation_publishing/interfaces/publishes_phase_events.ts new file mode 100644 index 0000000000000..72dbf70393a90 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_phase_events.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 { ErrorLike } from '@kbn/expressions-plugin/common'; +import { PublishingSubject } from '../publishing_subject'; + +/** ------------------------------------------------------------------------------------------ + * Performance Tracking Types + * ------------------------------------------------------------------------------------------ */ +export type PhaseEventType = 'loading' | 'loaded' | 'rendered' | 'error'; +export interface PhaseEvent { + id: string; + status: PhaseEventType; + error?: ErrorLike; + timeToEvent: number; +} + +export interface PublishesPhaseEvents { + onPhaseChange: PublishingSubject; +} + +export const apiPublishesPhaseEvents = ( + unknownApi: null | unknown +): unknownApi is PublishesPhaseEvents => { + return Boolean(unknownApi && (unknownApi as PublishesPhaseEvents)?.onPhaseChange !== undefined); +}; diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts b/packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.ts new file mode 100644 index 0000000000000..3df33706612b6 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_saved_object_id.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 { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +/** + * This API publishes a saved object id which can be used to determine which saved object this API is linked to. + */ +export interface PublishesSavedObjectId { + savedObjectId: PublishingSubject; +} + +/** + * A type guard which can be used to determine if a given API publishes a saved object id. + */ +export const apiPublishesSavedObjectId = ( + unknownApi: null | unknown +): unknownApi is PublishesSavedObjectId => { + return Boolean(unknownApi && (unknownApi as PublishesSavedObjectId)?.savedObjectId !== undefined); +}; + +/** + * A hook that gets this API's saved object ID as a reactive variable which will cause re-renders on change. + */ +export const useSavedObjectId = (api: PublishesSavedObjectId | undefined) => + useStateFromPublishingSubject(api?.savedObjectId); diff --git a/packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts b/packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts new file mode 100644 index 0000000000000..6e19c170a0222 --- /dev/null +++ b/packages/presentation/presentation_publishing/interfaces/publishes_view_mode.ts @@ -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 { PublishingSubject, useStateFromPublishingSubject } from '../publishing_subject'; + +export type ViewMode = 'view' | 'edit' | 'print' | 'preview'; + +/** + * This API publishes a universal view mode which can change compatibility of actions and the + * visibility of components. + */ +export interface PublishesViewMode { + viewMode: PublishingSubject; +} + +/** + * This API publishes a writable universal view mode which can change compatibility of actions and the + * visibility of components. + */ +export type PublishesWritableViewMode = PublishesViewMode & { + setViewMode: (viewMode: ViewMode) => void; +}; + +/** + * A type guard which can be used to determine if a given API publishes a view mode. + */ +export const apiPublishesViewMode = ( + unknownApi: null | unknown +): unknownApi is PublishesViewMode => { + return Boolean(unknownApi && (unknownApi as PublishesViewMode)?.viewMode !== undefined); +}; + +export const apiPublishesWritableViewMode = ( + unknownApi: null | unknown +): unknownApi is PublishesWritableViewMode => { + return ( + apiPublishesViewMode(unknownApi) && + (unknownApi as PublishesWritableViewMode).setViewMode !== undefined && + typeof (unknownApi as PublishesWritableViewMode).setViewMode === 'function' + ); +}; + +/** + * A hook that gets this API's view mode as a reactive variable which will cause re-renders on change. + */ +export const useViewMode = < + ApiType extends Partial = Partial +>( + api: ApiType | undefined +) => useStateFromPublishingSubject(api?.viewMode); diff --git a/packages/presentation/presentation_publishing/jest.config.js b/packages/presentation/presentation_publishing/jest.config.js new file mode 100644 index 0000000000000..417b2228b0476 --- /dev/null +++ b/packages/presentation/presentation_publishing/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/presentation/presentation_publishing'], +}; diff --git a/packages/presentation/presentation_publishing/kibana.jsonc b/packages/presentation/presentation_publishing/kibana.jsonc new file mode 100644 index 0000000000000..265e0564b963c --- /dev/null +++ b/packages/presentation/presentation_publishing/kibana.jsonc @@ -0,0 +1,5 @@ +{ + "type": "shared-common", + "id": "@kbn/presentation-publishing", + "owner": "@elastic/kibana-presentation" +} diff --git a/packages/presentation/presentation_publishing/package.json b/packages/presentation/presentation_publishing/package.json new file mode 100644 index 0000000000000..b32c88e0897bd --- /dev/null +++ b/packages/presentation/presentation_publishing/package.json @@ -0,0 +1,6 @@ +{ + "name": "@kbn/presentation-publishing", + "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/presentation/presentation_publishing/publishing_subject/index.ts b/packages/presentation/presentation_publishing/publishing_subject/index.ts new file mode 100644 index 0000000000000..f75455e64a68e --- /dev/null +++ b/packages/presentation/presentation_publishing/publishing_subject/index.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export { useBatchedPublishingSubjects } from './publishing_batcher'; +export { + useStateFromPublishingSubject, + usePublishingSubject, + type PublishingSubject, +} from './publishing_subject'; diff --git a/packages/presentation/presentation_publishing/publishing_subject/publishing_batcher.ts b/packages/presentation/presentation_publishing/publishing_subject/publishing_batcher.ts new file mode 100644 index 0000000000000..a4620e8aa2996 --- /dev/null +++ b/packages/presentation/presentation_publishing/publishing_subject/publishing_batcher.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 { useEffect, useMemo, useRef, useState } from 'react'; +import { combineLatest } from 'rxjs'; +import { debounceTime, filter } from 'rxjs/operators'; +import { PublishingSubject } from './publishing_subject'; + +// Usage of any required here. We want to subscribe to the subject no matter the type. +type AnyValue = any; +type AnyPublishingSubject = PublishingSubject; + +interface PublishingSubjectCollection { + [key: string]: AnyPublishingSubject | undefined; +} + +interface RequiredPublishingSubjectCollection { + [key: string]: AnyPublishingSubject; +} + +type PublishingSubjectBatchResult = { + [SubjectKey in keyof SubjectsType]?: SubjectsType[SubjectKey] extends + | PublishingSubject + | undefined + ? ValueType + : never; +}; + +const hasSubjectsObjectChanged = ( + subjectsA: PublishingSubjectCollection, + subjectsB: PublishingSubjectCollection +) => { + const subjectKeysA = Object.keys(subjectsA); + const subjectKeysB = Object.keys(subjectsB); + if (subjectKeysA.length !== subjectKeysB.length) return true; + + for (const key of subjectKeysA) { + if (Boolean(subjectsA[key]) !== Boolean(subjectsB[key])) return true; + } + return false; +}; + +/** + * Batches the latest values of multiple publishing subjects into a single object. Use this to avoid unnecessary re-renders. + * You should avoid using this hook with subjects that your component pushes values to on user interaction, as it can cause a slight delay. + */ +export const useBatchedPublishingSubjects = ( + subjects: SubjectsType +): PublishingSubjectBatchResult => { + /** + * memoize and deep diff subjects to avoid rebuilding the subscription when the subjects are the same. + */ + const previousSubjects = useRef(null); + + const subjectsToUse = useMemo(() => { + if (!previousSubjects.current && !Object.values(subjects).some((subject) => Boolean(subject))) { + // if the previous subjects were null and none of the new subjects are defined, return null to avoid building the subscription. + return null; + } + + if (!hasSubjectsObjectChanged(previousSubjects.current ?? {}, subjects)) { + return previousSubjects.current; + } + previousSubjects.current = subjects; + return subjects; + }, [subjects]); + + /** + * Extract only defined subjects from any subjects passed in. + */ + const { definedKeys, definedSubjects } = useMemo(() => { + if (!subjectsToUse) return {}; + const definedSubjectsMap: RequiredPublishingSubjectCollection = + Object.keys(subjectsToUse).reduce((acc, key) => { + if (Boolean(subjectsToUse[key])) acc[key] = subjectsToUse[key] as AnyPublishingSubject; + return acc; + }, {} as RequiredPublishingSubjectCollection) ?? {}; + + return { + definedKeys: Object.keys(definedSubjectsMap ?? {}) as Array, + definedSubjects: Object.values(definedSubjectsMap) ?? [], + }; + }, [subjectsToUse]); + + const [latestPublishedValues, setLatestPublishedValues] = useState< + PublishingSubjectBatchResult + >(() => { + if (!definedKeys?.length || !definedSubjects?.length) return {}; + const nextResult: PublishingSubjectBatchResult = {}; + for (let keyIndex = 0; keyIndex < definedKeys.length; keyIndex++) { + nextResult[definedKeys[keyIndex]] = definedSubjects[keyIndex].value ?? undefined; + } + return nextResult; + }); + + /** + * Subscribe to all subjects and update the latest values when any of them change. + */ + useEffect(() => { + if (!definedSubjects?.length || !definedKeys?.length) return; + const subscription = combineLatest(definedSubjects) + .pipe( + // debounce latest state for 0ms to flush all in-flight changes + debounceTime(0), + filter((changes) => changes.length > 0) + ) + .subscribe((latestValues) => { + const nextResult: PublishingSubjectBatchResult = {}; + for (let keyIndex = 0; keyIndex < definedKeys.length; keyIndex++) { + nextResult[definedKeys[keyIndex]] = latestValues[keyIndex] ?? undefined; + } + setLatestPublishedValues(nextResult); + }); + + return () => subscription.unsubscribe(); + }, [definedKeys, definedSubjects]); + + return latestPublishedValues; +}; diff --git a/packages/presentation/presentation_publishing/publishing_subject/publishing_subject.test.tsx b/packages/presentation/presentation_publishing/publishing_subject/publishing_subject.test.tsx new file mode 100644 index 0000000000000..deac166cc4686 --- /dev/null +++ b/packages/presentation/presentation_publishing/publishing_subject/publishing_subject.test.tsx @@ -0,0 +1,155 @@ +/* + * 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 { BehaviorSubject } from 'rxjs'; +import { render, screen, waitFor } from '@testing-library/react'; +import '@testing-library/jest-dom'; +import userEvent from '@testing-library/user-event'; +import { useBatchedPublishingSubjects } from './publishing_batcher'; +import { useStateFromPublishingSubject } from './publishing_subject'; + +describe('useBatchedPublishingSubjects', () => { + let subject1: BehaviorSubject; + let subject2: BehaviorSubject; + let subject3: BehaviorSubject; + let subject4: BehaviorSubject; + let subject5: BehaviorSubject; + let subject6: BehaviorSubject; + beforeEach(() => { + subject1 = new BehaviorSubject(0); + subject2 = new BehaviorSubject(0); + subject3 = new BehaviorSubject(0); + subject4 = new BehaviorSubject(0); + subject5 = new BehaviorSubject(0); + subject6 = new BehaviorSubject(0); + }); + + function incrementAll() { + subject1.next(subject1.getValue() + 1); + subject2.next(subject2.getValue() + 1); + subject3.next(subject3.getValue() + 1); + subject4.next(subject4.getValue() + 1); + subject5.next(subject5.getValue() + 1); + subject6.next(subject6.getValue() + 1); + } + + test('should render once when all state changes are in click handler (react batch)', async () => { + let renderCount = 0; + function Component() { + const value1 = useStateFromPublishingSubject(subject1); + const value2 = useStateFromPublishingSubject(subject2); + const value3 = useStateFromPublishingSubject(subject3); + const value4 = useStateFromPublishingSubject(subject4); + const value5 = useStateFromPublishingSubject(subject5); + const value6 = useStateFromPublishingSubject(subject6); + + renderCount++; + return ( + <> + +

@@ -142,9 +144,11 @@ exports[`NoDataCard props extends EuiCardProps 1`] = ` @@ -223,9 +227,11 @@ exports[`NoDataCard props href 1`] = ` @@ -370,9 +376,11 @@ exports[`NoDataCard renders 1`] = ` diff --git a/packages/shared-ux/card/no_data/impl/src/no_data_card.component.tsx b/packages/shared-ux/card/no_data/impl/src/no_data_card.component.tsx index 2c05f0319bfcd..264c4db677185 100644 --- a/packages/shared-ux/card/no_data/impl/src/no_data_card.component.tsx +++ b/packages/shared-ux/card/no_data/impl/src/no_data_card.component.tsx @@ -56,6 +56,7 @@ export const NoDataCard = ({ description: descriptionProp, canAccessFleet, button, + href, ...props }: Props) => { const styles = NoDataCardStyles(); @@ -72,7 +73,11 @@ export const NoDataCard = ({ } // Default footer action is a button with the provided or default string - return {button || titleProp || defaultTitle}; + return ( + + {button || titleProp || defaultTitle} + + ); }; const title = () => { @@ -103,6 +108,7 @@ export const NoDataCard = ({ description={description()} footer={footer()} isDisabled={!canAccessFleet} + href={href} image={} {...props} /> diff --git a/packages/shared-ux/card/no_data/types/index.d.ts b/packages/shared-ux/card/no_data/types/index.d.ts index e52843b160639..085d1629fd70a 100644 --- a/packages/shared-ux/card/no_data/types/index.d.ts +++ b/packages/shared-ux/card/no_data/types/index.d.ts @@ -56,7 +56,7 @@ export type NoDataCardKibanaDependencies = KibanaDependencies & RedirectAppLinks * Props for the `NoDataCard` pure component. */ export type NoDataCardComponentProps = Partial< - Omit + Pick > & { /** * Provide just a string for the button's label, or a whole component; diff --git a/packages/shared-ux/chrome/navigation/__jest__/__snapshots__/project_navigation.test.tsx.snap b/packages/shared-ux/chrome/navigation/__jest__/__snapshots__/project_navigation.test.tsx.snap deleted file mode 100644 index d8a1b5d6eacc3..0000000000000 --- a/packages/shared-ux/chrome/navigation/__jest__/__snapshots__/project_navigation.test.tsx.snap +++ /dev/null @@ -1,542 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Default navigation builds the full navigation tree when only the project is provided 1`] = ` -Array [ - Object { - "children": Array [ - Object { - "deepLink": undefined, - "href": undefined, - "id": "item1", - "isElasticInternalLink": false, - "path": "group1.item1", - "sideNavStatus": "visible", - "title": "Item 1", - }, - Object { - "deepLink": Object { - "baseUrl": "", - "href": "", - "id": "item2", - "title": "Title from deeplink!", - "url": "", - }, - "href": "", - "id": "item2", - "isElasticInternalLink": false, - "path": "group1.item2", - "sideNavStatus": "visible", - "title": "Title from deeplink!", - }, - Object { - "deepLink": Object { - "baseUrl": "", - "href": "", - "id": "item2", - "title": "Title from deeplink!", - "url": "", - }, - "href": "", - "id": "item3", - "isElasticInternalLink": false, - "path": "group1.item3", - "sideNavStatus": "visible", - "title": "Deeplink title overriden", - }, - ], - "deepLink": undefined, - "href": undefined, - "id": "group1", - "isElasticInternalLink": false, - "path": "group1", - "sideNavStatus": "visible", - "title": "Group 1", - "type": "navGroup", - }, - Object { - "children": Array [ - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/discover", - "id": "discover", - "title": "Deeplink discover", - "url": "/mocked/discover", - }, - "href": "/mocked/discover", - "id": "discover", - "isElasticInternalLink": false, - "path": "rootNav:analytics.discover", - "sideNavStatus": "visible", - "title": "Deeplink discover", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/dashboards", - "id": "dashboards", - "title": "Deeplink dashboards", - "url": "/mocked/dashboards", - }, - "href": "/mocked/dashboards", - "id": "dashboards", - "isElasticInternalLink": false, - "path": "rootNav:analytics.dashboards", - "sideNavStatus": "visible", - "title": "Deeplink dashboards", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/visualize", - "id": "visualize", - "title": "Deeplink visualize", - "url": "/mocked/visualize", - }, - "href": "/mocked/visualize", - "id": "visualize", - "isElasticInternalLink": false, - "path": "rootNav:analytics.visualize", - "sideNavStatus": "visible", - "title": "Deeplink visualize", - }, - ], - "deepLink": undefined, - "href": undefined, - "icon": "stats", - "id": "rootNav:analytics", - "isElasticInternalLink": false, - "path": "rootNav:analytics", - "renderAs": "accordion", - "sideNavStatus": "visible", - "title": "Data exploration", - "type": "navGroup", - }, - Object { - "children": Array [ - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:overview", - "id": "ml:overview", - "title": "Deeplink ml:overview", - "url": "/mocked/ml:overview", - }, - "href": "/mocked/ml:overview", - "id": "ml:overview", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:overview", - "sideNavStatus": "visible", - "title": "Deeplink ml:overview", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:notifications", - "id": "ml:notifications", - "title": "Deeplink ml:notifications", - "url": "/mocked/ml:notifications", - }, - "href": "/mocked/ml:notifications", - "id": "ml:notifications", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:notifications", - "sideNavStatus": "visible", - "title": "Deeplink ml:notifications", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:memoryUsage", - "id": "ml:memoryUsage", - "title": "Deeplink ml:memoryUsage", - "url": "/mocked/ml:memoryUsage", - }, - "href": "/mocked/ml:memoryUsage", - "id": "ml:memoryUsage", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:memoryUsage", - "sideNavStatus": "visible", - "title": "Deeplink ml:memoryUsage", - }, - Object { - "children": Array [ - Object { - "breadcrumbStatus": "hidden", - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:anomalyDetection", - "id": "ml:anomalyDetection", - "title": "Deeplink ml:anomalyDetection", - "url": "/mocked/ml:anomalyDetection", - }, - "href": "/mocked/ml:anomalyDetection", - "id": "ml:anomalyDetection", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:anomalyDetection.ml:anomalyDetection", - "sideNavStatus": "visible", - "title": "Jobs", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:anomalyExplorer", - "id": "ml:anomalyExplorer", - "title": "Deeplink ml:anomalyExplorer", - "url": "/mocked/ml:anomalyExplorer", - }, - "href": "/mocked/ml:anomalyExplorer", - "id": "ml:anomalyExplorer", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:anomalyDetection.ml:anomalyExplorer", - "sideNavStatus": "visible", - "title": "Deeplink ml:anomalyExplorer", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:singleMetricViewer", - "id": "ml:singleMetricViewer", - "title": "Deeplink ml:singleMetricViewer", - "url": "/mocked/ml:singleMetricViewer", - }, - "href": "/mocked/ml:singleMetricViewer", - "id": "ml:singleMetricViewer", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:anomalyDetection.ml:singleMetricViewer", - "sideNavStatus": "visible", - "title": "Deeplink ml:singleMetricViewer", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:settings", - "id": "ml:settings", - "title": "Deeplink ml:settings", - "url": "/mocked/ml:settings", - }, - "href": "/mocked/ml:settings", - "id": "ml:settings", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:anomalyDetection.ml:settings", - "sideNavStatus": "visible", - "title": "Deeplink ml:settings", - }, - ], - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:anomalyDetection", - "id": "ml:anomalyDetection", - "title": "Deeplink ml:anomalyDetection", - "url": "/mocked/ml:anomalyDetection", - }, - "href": "/mocked/ml:anomalyDetection", - "id": "ml:anomalyDetection", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:anomalyDetection", - "renderAs": "accordion", - "sideNavStatus": "visible", - "title": "Anomaly Detection", - }, - Object { - "children": Array [ - Object { - "breadcrumbStatus": "hidden", - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:dataFrameAnalytics", - "id": "ml:dataFrameAnalytics", - "title": "Deeplink ml:dataFrameAnalytics", - "url": "/mocked/ml:dataFrameAnalytics", - }, - "href": "/mocked/ml:dataFrameAnalytics", - "id": "ml:dataFrameAnalytics", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:dataFrameAnalytics.ml:dataFrameAnalytics", - "sideNavStatus": "visible", - "title": "Jobs", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:resultExplorer", - "id": "ml:resultExplorer", - "title": "Deeplink ml:resultExplorer", - "url": "/mocked/ml:resultExplorer", - }, - "href": "/mocked/ml:resultExplorer", - "id": "ml:resultExplorer", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:dataFrameAnalytics.ml:resultExplorer", - "sideNavStatus": "visible", - "title": "Deeplink ml:resultExplorer", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:analyticsMap", - "id": "ml:analyticsMap", - "title": "Deeplink ml:analyticsMap", - "url": "/mocked/ml:analyticsMap", - }, - "href": "/mocked/ml:analyticsMap", - "id": "ml:analyticsMap", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:dataFrameAnalytics.ml:analyticsMap", - "sideNavStatus": "visible", - "title": "Deeplink ml:analyticsMap", - }, - ], - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:dataFrameAnalytics", - "id": "ml:dataFrameAnalytics", - "title": "Deeplink ml:dataFrameAnalytics", - "url": "/mocked/ml:dataFrameAnalytics", - }, - "href": "/mocked/ml:dataFrameAnalytics", - "id": "ml:dataFrameAnalytics", - "isElasticInternalLink": false, - "path": "rootNav:ml.ml:dataFrameAnalytics", - "renderAs": "accordion", - "sideNavStatus": "visible", - "title": "Data Frame Analytics", - }, - Object { - "children": Array [ - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:nodesOverview", - "id": "ml:nodesOverview", - "title": "Deeplink ml:nodesOverview", - "url": "/mocked/ml:nodesOverview", - }, - "href": "/mocked/ml:nodesOverview", - "id": "ml:nodesOverview", - "isElasticInternalLink": false, - "path": "rootNav:ml.model_management.ml:nodesOverview", - "sideNavStatus": "visible", - "title": "Deeplink ml:nodesOverview", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:nodes", - "id": "ml:nodes", - "title": "Deeplink ml:nodes", - "url": "/mocked/ml:nodes", - }, - "href": "/mocked/ml:nodes", - "id": "ml:nodes", - "isElasticInternalLink": false, - "path": "rootNav:ml.model_management.ml:nodes", - "sideNavStatus": "visible", - "title": "Deeplink ml:nodes", - }, - ], - "deepLink": undefined, - "href": undefined, - "id": "model_management", - "isElasticInternalLink": false, - "path": "rootNav:ml.model_management", - "renderAs": "accordion", - "sideNavStatus": "visible", - "title": "Model Management", - }, - Object { - "children": Array [ - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:fileUpload", - "id": "ml:fileUpload", - "title": "Deeplink ml:fileUpload", - "url": "/mocked/ml:fileUpload", - }, - "href": "/mocked/ml:fileUpload", - "id": "ml:fileUpload", - "isElasticInternalLink": false, - "path": "rootNav:ml.data_visualizer.ml:fileUpload", - "sideNavStatus": "visible", - "title": "File", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:indexDataVisualizer", - "id": "ml:indexDataVisualizer", - "title": "Deeplink ml:indexDataVisualizer", - "url": "/mocked/ml:indexDataVisualizer", - }, - "getIsActive": [Function], - "href": "/mocked/ml:indexDataVisualizer", - "id": "ml:indexDataVisualizer", - "isElasticInternalLink": false, - "path": "rootNav:ml.data_visualizer.ml:indexDataVisualizer", - "sideNavStatus": "visible", - "title": "Data view", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:dataDrift", - "id": "ml:dataDrift", - "title": "Deeplink ml:dataDrift", - "url": "/mocked/ml:dataDrift", - }, - "getIsActive": [Function], - "href": "/mocked/ml:dataDrift", - "id": "ml:dataDrift", - "isElasticInternalLink": false, - "path": "rootNav:ml.data_visualizer.ml:dataDrift", - "sideNavStatus": "visible", - "title": "Data drift", - }, - ], - "deepLink": undefined, - "href": undefined, - "id": "data_visualizer", - "isElasticInternalLink": false, - "path": "rootNav:ml.data_visualizer", - "renderAs": "accordion", - "sideNavStatus": "visible", - "title": "Data Visualizer", - }, - Object { - "children": Array [ - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:logRateAnalysis", - "id": "ml:logRateAnalysis", - "title": "Deeplink ml:logRateAnalysis", - "url": "/mocked/ml:logRateAnalysis", - }, - "getIsActive": [Function], - "href": "/mocked/ml:logRateAnalysis", - "id": "ml:logRateAnalysis", - "isElasticInternalLink": false, - "path": "rootNav:ml.aiops_labs.ml:logRateAnalysis", - "sideNavStatus": "visible", - "title": "Deeplink ml:logRateAnalysis", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:logPatternAnalysis", - "id": "ml:logPatternAnalysis", - "title": "Deeplink ml:logPatternAnalysis", - "url": "/mocked/ml:logPatternAnalysis", - }, - "getIsActive": [Function], - "href": "/mocked/ml:logPatternAnalysis", - "id": "ml:logPatternAnalysis", - "isElasticInternalLink": false, - "path": "rootNav:ml.aiops_labs.ml:logPatternAnalysis", - "sideNavStatus": "visible", - "title": "Deeplink ml:logPatternAnalysis", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/ml:changePointDetections", - "id": "ml:changePointDetections", - "title": "Deeplink ml:changePointDetections", - "url": "/mocked/ml:changePointDetections", - }, - "getIsActive": [Function], - "href": "/mocked/ml:changePointDetections", - "id": "ml:changePointDetections", - "isElasticInternalLink": false, - "path": "rootNav:ml.aiops_labs.ml:changePointDetections", - "sideNavStatus": "visible", - "title": "Deeplink ml:changePointDetections", - }, - ], - "deepLink": undefined, - "href": undefined, - "id": "aiops_labs", - "isElasticInternalLink": false, - "path": "rootNav:ml.aiops_labs", - "renderAs": "accordion", - "sideNavStatus": "visible", - "title": "AIOps labs", - }, - ], - "deepLink": undefined, - "href": undefined, - "icon": "machineLearningApp", - "id": "rootNav:ml", - "isElasticInternalLink": false, - "path": "rootNav:ml", - "sideNavStatus": "visible", - "title": "Machine Learning", - "type": "navGroup", - }, - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/dev_tools", - "id": "dev_tools", - "title": "Deeplink dev_tools", - "url": "/mocked/dev_tools", - }, - "href": "/mocked/dev_tools", - "icon": "editorCodeBlock", - "id": "devTools", - "isElasticInternalLink": false, - "path": "devTools", - "sideNavStatus": "visible", - "title": "Developer tools", - "type": "navItem", - }, - Object { - "breadcrumbStatus": "hidden", - "children": Array [ - Object { - "deepLink": Object { - "baseUrl": "/mocked", - "href": "http://mocked/management", - "id": "management", - "title": "Deeplink management", - "url": "/mocked/management", - }, - "href": "/mocked/management", - "id": "management", - "isElasticInternalLink": false, - "path": "project_settings_project_nav.management", - "sideNavStatus": "visible", - "title": "Management", - }, - Object { - "deepLink": undefined, - "href": "https://cloud.elastic.co/deployments/123456789/security/users", - "id": "cloudLinkUserAndRoles", - "isElasticInternalLink": true, - "path": "project_settings_project_nav.cloudLinkUserAndRoles", - "sideNavStatus": "visible", - "title": "Mock Users & Roles", - }, - Object { - "deepLink": undefined, - "href": "https://cloud.elastic.co/account/billing", - "id": "cloudLinkBilling", - "isElasticInternalLink": true, - "path": "project_settings_project_nav.cloudLinkBilling", - "sideNavStatus": "visible", - "title": "Mock Billing & Subscriptions", - }, - ], - "deepLink": undefined, - "href": undefined, - "icon": "gear", - "id": "project_settings_project_nav", - "isElasticInternalLink": false, - "path": "project_settings_project_nav", - "sideNavStatus": "visible", - "title": "Project settings", - "type": "navGroup", - }, -] -`; diff --git a/packages/shared-ux/chrome/navigation/__jest__/active_node.test.tsx b/packages/shared-ux/chrome/navigation/__jest__/active_node.test.tsx index 5a82d4ccd509b..4f51af1086b20 100644 --- a/packages/shared-ux/chrome/navigation/__jest__/active_node.test.tsx +++ b/packages/shared-ux/chrome/navigation/__jest__/active_node.test.tsx @@ -6,38 +6,14 @@ * Side Public License, v 1. */ import './setup_jest_mocks'; -import React from 'react'; -import { type RenderResult, act } from '@testing-library/react'; +import { act } from '@testing-library/react'; import { of, BehaviorSubject } from 'rxjs'; -import type { - ChromeProjectNavigation, - ChromeProjectNavigationNode, -} from '@kbn/core-chrome-browser'; +import type { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; -import { Navigation } from '../src/ui/components/navigation'; -import type { RootNavigationItemDefinition } from '../src/ui/types'; -import { NavigationServices } from '../types'; -import { renderNavigation, errorHandler, TestType } from './utils'; +import { renderNavigation } from './utils'; describe('Active node', () => { test('should set the active node', async () => { - const deepLinks$: NavigationServices['deepLinks$'] = of({ - item1: { - id: 'item1', - title: 'Item 1', - baseUrl: '', - url: '', - href: '', - }, - item2: { - id: 'item2', - title: 'Item 2', - baseUrl: '', - url: '', - href: '', - }, - }); - let activeNodes$: BehaviorSubject; const getActiveNodes$ = () => { @@ -59,173 +35,74 @@ describe('Active node', () => { return activeNodes$; }; - const runTests = async (type: TestType, { findByTestId }: RenderResult) => { - try { - expect((await findByTestId(/nav-item-group1.item1/)).dataset.testSubj).toMatch( - /nav-item-isActive/ - ); - expect((await findByTestId(/nav-item-group1.item2/)).dataset.testSubj).not.toMatch( - /nav-item-isActive/ - ); - - await act(async () => { - activeNodes$.next([ - [ - { - id: 'group1', - title: 'Group 1', - path: 'group1', - }, - { - id: 'item2', - title: 'Item 2', - path: 'group1.item2', - }, - ], - ]); - }); - - expect((await findByTestId(/nav-item-group1.item1/)).dataset.testSubj).not.toMatch( - /nav-item-isActive/ - ); - expect((await findByTestId(/nav-item-group1.item2/)).dataset.testSubj).toMatch( - /nav-item-isActive/ - ); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ - { - type: 'navGroup', - id: 'group1', - children: [ - { link: 'item1', title: 'Item 1' }, - { link: 'item2', title: 'Item 2' }, - ], - }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - services: { deepLinks$, activeNodes$: getActiveNodes$() }, - }); - - await runTests('treeDef', renderResult); - - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - link="item1" title="Item 1" /> - link="item2" title="Item 2" /> - - - ), - services: { deepLinks$, activeNodes$: getActiveNodes$() }, - }); - - await runTests('uiComponents', renderResult); - } - }); - - test('should override the URL location to set the active node', async () => { - const deepLinks$: NavigationServices['deepLinks$'] = of({ - item1: { - id: 'item1', - title: 'Item 1', - baseUrl: '', - url: '', - href: '', - }, - }); - - let activeNodes$: BehaviorSubject; - - const getActiveNodes$ = () => { - activeNodes$ = new BehaviorSubject([]); - - return activeNodes$; - }; - - const onProjectNavigationChange = (nav: ChromeProjectNavigation) => { - nav.navigationTree.forEach((node) => { - node.children?.forEach((child) => { - if (child.getIsActive?.({} as any)) { - activeNodes$.next([[child]]); - } - }); - }); - }; - - const runTests = async (type: TestType, { findByTestId }: RenderResult) => { - try { - expect((await findByTestId(/nav-item-group1.item1/)).dataset.testSubj).toMatch( - /nav-item-isActive/ - ); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ - { - type: 'navGroup', - id: 'group1', - children: [ - { - link: 'item1', + const navigationBody: ChromeProjectNavigationNode[] = [ + { + id: 'group1', + title: 'Group 1', + path: 'group1', + children: [ + { + title: 'Item 1', + id: 'item1', + path: 'group1.item1', + deepLink: { + id: 'item1', title: 'Item 1', - getIsActive: () => { - return true; // Always active - }, + baseUrl: '', + url: '', + href: '', }, - ], - }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - services: { deepLinks$, activeNodes$: getActiveNodes$() }, - onProjectNavigationChange, - }); + }, + { + title: 'Item 2', + id: 'item2', + path: 'group1.item2', + deepLink: { + id: 'item2', + title: 'Item 2', + baseUrl: '', + url: '', + href: '', + }, + }, + ], + }, + ]; - await runTests('treeDef', renderResult); + const { findByTestId } = renderNavigation({ + navTreeDef: of({ body: navigationBody }), + services: { activeNodes$: getActiveNodes$() }, + }); - renderResult.unmount(); - } + expect((await findByTestId(/nav-item-group1.item1/)).dataset.testSubj).toMatch( + /nav-item-isActive/ + ); + expect((await findByTestId(/nav-item-group1.item2/)).dataset.testSubj).not.toMatch( + /nav-item-isActive/ + ); - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - link="item1" - title="Item 1" - getIsActive={() => { - return true; - }} - /> - - - ), - onProjectNavigationChange, - services: { deepLinks$, activeNodes$: getActiveNodes$() }, - }); + await act(async () => { + activeNodes$.next([ + [ + { + id: 'group1', + title: 'Group 1', + path: 'group1', + }, + { + id: 'item2', + title: 'Item 2', + path: 'group1.item2', + }, + ], + ]); + }); - await runTests('uiComponents', renderResult); - } + expect((await findByTestId(/nav-item-group1.item1/)).dataset.testSubj).not.toMatch( + /nav-item-isActive/ + ); + expect((await findByTestId(/nav-item-group1.item2/)).dataset.testSubj).toMatch( + /nav-item-isActive/ + ); }); }); diff --git a/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx b/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx index 653af835b6c95..76336b10a300a 100644 --- a/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx +++ b/packages/shared-ux/chrome/navigation/__jest__/build_nav_tree.test.tsx @@ -6,558 +6,120 @@ * Side Public License, v 1. */ import './setup_jest_mocks'; -import React from 'react'; -import { type RenderResult } from '@testing-library/react'; import { of } from 'rxjs'; -import type { ChromeNavLink } from '@kbn/core-chrome-browser'; +import type { NavigationTreeDefinitionUI } from '@kbn/core-chrome-browser'; -import { navLinksMock } from '../mocks/src/navlinks'; -import { Navigation } from '../src/ui/components/navigation'; -import type { RootNavigationItemDefinition } from '../src/ui/types'; -import { - getMockFn, - renderNavigation, - errorHandler, - type TestType, - type ProjectNavigationChangeListener, -} from './utils'; -import { getServicesMock } from '../mocks/src/jest'; -import { NavigationServices } from '../types'; - -const { cloudLinks: mockCloudLinks } = getServicesMock(); +import { renderNavigation } from './utils'; describe('builds navigation tree', () => { test('render reference UI and build the navigation tree', async () => { - const onProjectNavigationChange = getMockFn(); - - const runTests = async (type: TestType, { findByTestId }: RenderResult) => { - try { - expect(await findByTestId(/nav-item-group1.item1\s/)).toBeVisible(); - expect(await findByTestId(/nav-item-group1.item2\s/)).toBeVisible(); - expect(await findByTestId(/nav-item-group1.group1A\s/)).toBeVisible(); - expect(await findByTestId(/nav-item-group1.group1A.item1\s/)).toBeVisible(); - expect(await findByTestId(/nav-item-group1.group1A.group1A_1\s/)).toBeVisible(); - - // Click the last group to expand and show the last depth - (await findByTestId(/nav-item-group1.group1A.group1A_1\s/)).click(); - - expect(await findByTestId(/nav-item-group1.group1A.group1A_1.item1/)).toBeVisible(); - - expect(onProjectNavigationChange).toHaveBeenCalled(); - const lastCall = - onProjectNavigationChange.mock.calls[onProjectNavigationChange.mock.calls.length - 1]; - const [{ navigationTree }] = lastCall; - return navigationTree; - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const renderResult = renderNavigation({ - navTreeDef: { - body: [ - { - type: 'navGroup', - id: 'group1', - defaultIsCollapsed: false, - children: [ - { - id: 'item1', - title: 'Item 1', - href: 'https://foo', - }, - { - id: 'item2', - title: 'Item 2', - href: 'https://foo', - }, - { - id: 'group1A', - title: 'Group1A', - defaultIsCollapsed: false, - children: [ - { - id: 'item1', - title: 'Group 1A Item 1', - href: 'https://foo', - }, - { - id: 'group1A_1', - title: 'Group1A_1', - children: [ - { - id: 'item1', - title: 'Group 1A_1 Item 1', - href: 'https://foo', - }, - ], - }, - ], - }, - ], - }, - ], - }, - onProjectNavigationChange, - }); - - const navigationTree = await runTests('treeDef', renderResult); - - expect(navigationTree).toMatchInlineSnapshot(` - Array [ - Object { - "children": Array [ - Object { - "deepLink": undefined, - "href": "https://foo", - "id": "item1", - "isElasticInternalLink": false, - "path": "group1.item1", - "sideNavStatus": "visible", - "title": "Item 1", - }, - Object { - "deepLink": undefined, - "href": "https://foo", - "id": "item2", - "isElasticInternalLink": false, - "path": "group1.item2", - "sideNavStatus": "visible", - "title": "Item 2", - }, - Object { - "children": Array [ - Object { - "deepLink": undefined, - "href": "https://foo", - "id": "item1", - "isElasticInternalLink": false, - "path": "group1.group1A.item1", - "sideNavStatus": "visible", - "title": "Group 1A Item 1", - }, - Object { - "children": Array [ - Object { - "deepLink": undefined, - "href": "https://foo", - "id": "item1", - "isElasticInternalLink": false, - "path": "group1.group1A.group1A_1.item1", - "sideNavStatus": "visible", - "title": "Group 1A_1 Item 1", - }, - ], - "deepLink": undefined, - "href": undefined, - "id": "group1A_1", - "isElasticInternalLink": false, - "path": "group1.group1A.group1A_1", - "sideNavStatus": "visible", - "title": "Group1A_1", - }, - ], - "deepLink": undefined, - "defaultIsCollapsed": false, - "href": undefined, - "id": "group1A", - "isElasticInternalLink": false, - "path": "group1.group1A", - "sideNavStatus": "visible", - "title": "Group1A", - }, - ], - "deepLink": undefined, - "defaultIsCollapsed": false, - "href": undefined, - "id": "group1", - "isElasticInternalLink": false, - "path": "group1", - "sideNavStatus": "visible", - "title": "", - "type": "navGroup", - }, - ] - `); - - onProjectNavigationChange.mockReset(); - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - - - - - - - - - - ), - onProjectNavigationChange, - }); - - const navigationTree = await runTests('uiComponents', renderResult); - - expect(navigationTree).toMatchInlineSnapshot(` - Array [ - Object { - "children": Array [ - Object { - "deepLink": undefined, - "href": "https://foo", - "id": "item1", - "isElasticInternalLink": false, - "path": "group1.item1", - "sideNavStatus": "visible", - "title": "Item 1", + const { findByTestId } = renderNavigation({ + navTreeDef: of({ + body: [ + { + id: 'group1', + title: 'Group 1', + defaultIsCollapsed: false, + path: 'group1', + children: [ + { + id: 'item1', + title: 'Item 1', + href: 'https://foo', + path: 'group1.item1', }, - Object { - "deepLink": undefined, - "href": "https://foo", - "id": "item2", - "isElasticInternalLink": false, - "path": "group1.item2", - "sideNavStatus": "visible", - "title": "Item 2", + { + id: 'item2', + title: 'Item 2', + href: 'https://foo', + path: 'group1.item2', }, - Object { - "children": Array [ - Object { - "deepLink": undefined, - "href": "https://foo", - "id": "item1", - "isElasticInternalLink": false, - "path": "group1.group1A.item1", - "sideNavStatus": "visible", - "title": "Group 1A Item 1", + { + id: 'group1A', + title: 'Group1A', + defaultIsCollapsed: false, + path: 'group1.group1A', + children: [ + { + id: 'item1', + title: 'Group 1A Item 1', + href: 'https://foo', + path: 'group1.group1A.item1', }, - Object { - "children": Array [ - Object { - "deepLink": undefined, - "href": "https://foo", - "id": "item1", - "isElasticInternalLink": false, - "path": "group1.group1A.group1A_1.item1", - "sideNavStatus": "visible", - "title": "Group 1A_1 Item 1", + { + id: 'group1A_1', + title: 'Group1A_1', + path: 'group1.group1A.group1A_1', + children: [ + { + id: 'item1', + title: 'Group 1A_1 Item 1', + href: 'https://foo', + path: 'group1.group1A.group1A_1.item1', }, ], - "deepLink": undefined, - "href": undefined, - "id": "group1A_1", - "isElasticInternalLink": false, - "path": "group1.group1A.group1A_1", - "sideNavStatus": "visible", - "title": "Group1A_1", }, ], - "deepLink": undefined, - "href": undefined, - "id": "group1A", - "isElasticInternalLink": false, - "path": "group1.group1A", - "sideNavStatus": "visible", - "title": "Group1A", }, ], - "deepLink": undefined, - "defaultIsCollapsed": false, - "href": undefined, - "id": "group1", - "isElasticInternalLink": false, - "path": "group1", - "sideNavStatus": "visible", - "title": "", }, - ] - `); - } - }); - - test('should read the title from deeplink, prop or React children', async () => { - const deepLinks$: NavigationServices['deepLinks$'] = of({ - ...navLinksMock.reduce>((acc, navLink) => { - acc[navLink.id] = navLink; - return acc; - }, {}), - item1: { - id: 'item1', - title: 'Title from deeplink', - baseUrl: '', - url: '', - href: '', - }, + ], + }), }); - const onProjectNavigationChange = getMockFn(); - - const runTests = (type: TestType) => { - expect(onProjectNavigationChange).toHaveBeenCalled(); - const lastCall = - onProjectNavigationChange.mock.calls[onProjectNavigationChange.mock.calls.length - 1]; - const [{ navigationTree }] = lastCall; - - const groupChildren = navigationTree[0].children?.[0].children; - - if (!groupChildren) { - throw new Error('Expected group children to be defined'); - } - - try { - expect(groupChildren[0].title).toBe('Title from deeplink'); - expect(groupChildren[1].title).toBe('Overwrite deeplink title'); - expect(groupChildren[2].title).toBe('Title in props'); // Unknown deeplink, has not been rendered - } catch (e) { - errorHandler(type)(e); - } - - return groupChildren; - }; - - // -- Default navigation - { - const navigationBody: Array> = [ - { - type: 'navGroup', - id: 'root', - children: [ - { - id: 'group1', - children: [ - { - id: 'item1', - link: 'item1', // Title from deeplink - }, - { - id: 'item2', - link: 'item1', // Overwrite title from deeplink - title: 'Overwrite deeplink title', - }, - { - id: 'item3', - title: 'Title in props', - }, - { - id: 'item4', - link: 'unknown', // Unknown deeplink - title: 'Should not be rendered', - }, - ], - }, - ], - }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - services: { deepLinks$ }, - onProjectNavigationChange, - }); - - const groupChildren = runTests('treeDef'); - expect(groupChildren.length).toBe(3); - expect(groupChildren[3]).toBeUndefined(); // Unknown deeplink, has not been rendered + expect(await findByTestId(/nav-item-group1.item1\s/)).toBeVisible(); + expect(await findByTestId(/nav-item-group1.item2\s/)).toBeVisible(); + expect(await findByTestId(/nav-item-group1.group1A\s/)).toBeVisible(); + expect(await findByTestId(/nav-item-group1.group1A.item1\s/)).toBeVisible(); + expect(await findByTestId(/nav-item-group1.group1A.group1A_1\s/)).toBeVisible(); - onProjectNavigationChange.mockReset(); - renderResult.unmount(); - } + // Click the last group to expand and show the last depth + (await findByTestId(/nav-item-group1.group1A.group1A_1\s/)).click(); - // -- With UI components - { - renderNavigation({ - navigationElement: ( - - - - {/* Title from deeplink */} - id="item1" link="item1" /> - id="item2" link="item1" title="Overwrite deeplink title" /> - - id="item4" link="unknown" title="Should not be rendered" /> - Title in children - - - - ), - services: { deepLinks$ }, - onProjectNavigationChange, - }); - - const groupChildren = runTests('uiComponents'); - expect(groupChildren.length).toBe(4); - // "item4" has been skipped as it is an unknown deeplink and we have the next item in the list - expect(groupChildren[3].title).toBe('Title in children'); - } + expect(await findByTestId(/nav-item-group1.group1A.group1A_1.item1/)).toBeVisible(); }); - test('should not render the group if it does not have children AND no href or deeplink', async () => { - const deepLinks$: NavigationServices['deepLinks$'] = of({ - item1: { - id: 'item1', - title: 'Title from deeplink', - baseUrl: '', - url: '', - href: '', - }, - }); - const onProjectNavigationChange = getMockFn(); - - const runTests = (type: TestType, { queryByTestId }: RenderResult) => { - expect(onProjectNavigationChange).toHaveBeenCalled(); - - try { - // Check the DOM - expect(queryByTestId(/nav-group-root.group1/)).toBeNull(); - expect(queryByTestId(/nav-item-root.group2.item1/)).toBeVisible(); - - // Check the navigation tree - const lastCall = - onProjectNavigationChange.mock.calls[onProjectNavigationChange.mock.calls.length - 1]; - const [navTree] = lastCall; - const [rootNode] = navTree.navigationTree; - expect(rootNode.id).toBe('root'); - expect(rootNode.children?.length).toBe(2); - expect(rootNode.children?.[0]?.id).toBe('group1'); - expect(rootNode.children?.[0]?.children).toBeUndefined(); // No children mounted and registered itself - expect(rootNode.children?.[1]?.id).toBe('group2'); - return navTree; - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ + test('should not render the group if it does not have children', async () => { + const navTree: NavigationTreeDefinitionUI = { + body: [ { - type: 'navGroup', id: 'root', + title: 'Root', + path: 'root', isCollapsible: false, children: [ { id: 'group1', - children: [{ link: 'notRegistered' }], + title: 'Group 1', + path: 'root.group1', + children: [], // Group with no children should not be rendered }, { id: 'group2', - children: [{ link: 'item1' }], + title: 'Group 2', + path: 'group2', + isCollapsible: false, + children: [ + { + id: 'item1', + title: 'Item 1', + href: '/app/item1', + path: 'root.group2.item1', + }, + ], }, ], }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - services: { deepLinks$ }, - onProjectNavigationChange, - }); - - await runTests('treeDef', renderResult); - - onProjectNavigationChange.mockReset(); - renderResult.unmount(); - } - - // -- With UI components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - link="notRegistered" /> - - - link="item1" /> - - - - ), - services: { deepLinks$ }, - onProjectNavigationChange, - }); - - await runTests('uiComponents', renderResult); - } - }); - - test('should render group preset (analytics, ml...)', async () => { - const onProjectNavigationChange = getMockFn(); - - const runTests = async (type: TestType) => { - try { - expect(onProjectNavigationChange).toHaveBeenCalled(); - const lastCall = - onProjectNavigationChange.mock.calls[onProjectNavigationChange.mock.calls.length - 1]; - const [navTreeGenerated] = lastCall; - - expect(navTreeGenerated).toEqual({ - navigationTree: expect.any(Array), - }); - } catch (e) { - errorHandler(type)(e); - } + ], }; - // -- Default navigation - { - const navigationBody: Array> = [ - { - type: 'preset', - preset: 'analytics', - }, - { - type: 'preset', - preset: 'ml', - }, - { - type: 'preset', - preset: 'devtools', - }, - { - type: 'preset', - preset: 'management', - }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - onProjectNavigationChange, - }); - - await runTests('treeDef'); - - renderResult.unmount(); - onProjectNavigationChange.mockReset(); - } - - // -- With UI Components - { - renderNavigation({ - navigationElement: ( - - - - - - - ), - onProjectNavigationChange, - }); + const { queryByTestId } = renderNavigation({ + navTreeDef: of(navTree), + }); - await runTests('uiComponents'); - } + // Check the DOM + expect(queryByTestId(/nav-group-root.group1/)).toBeNull(); + expect(queryByTestId(/nav-item-root.group2.item1/)).toBeVisible(); }); test('should render recently accessed items', async () => { @@ -566,130 +128,22 @@ describe('builds navigation tree', () => { { label: 'Another example', link: '/app/example/5235', id: '5235' }, ]); - const runTests = async (type: TestType, { findByTestId }: RenderResult) => { - try { - expect(await findByTestId('nav-bucket-recentlyAccessed')).toBeVisible(); - expect((await findByTestId('nav-bucket-recentlyAccessed')).textContent).toBe( - 'RecentThis is an exampleAnother example' - ); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ + const navTree: NavigationTreeDefinitionUI = { + body: [ { type: 'recentlyAccessed', }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - services: { recentlyAccessed$ }, - }); - - await runTests('treeDef', renderResult); - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - ), - services: { recentlyAccessed$ }, - }); - - await runTests('uiComponents', renderResult); - } - }); - - test('should render the cloud links', async () => { - const stripLastChar = (str: string = '') => str.substring(0, str.length - 1); - - const runTests = async (type: TestType, { findByTestId }: RenderResult) => { - try { - expect(await findByTestId(/nav-item-group1.cloudLink1/)).toBeVisible(); - expect(await findByTestId(/nav-item-group1.cloudLink2/)).toBeVisible(); - expect(await findByTestId(/nav-item-group1.cloudLink3/)).toBeVisible(); - - { - const userAndRolesLink = await findByTestId(/nav-item-group1.cloudLink1/); - expect(userAndRolesLink.textContent).toBe('Mock Users & Roles'); - const href = userAndRolesLink.getAttribute('href'); - expect(href).toBe(stripLastChar(mockCloudLinks.userAndRoles?.href)); - } - - { - const performanceLink = await findByTestId(/nav-item-group1.cloudLink2/); - expect(performanceLink.textContent).toBe('Mock Performance'); - const href = performanceLink.getAttribute('href'); - expect(href).toBe(stripLastChar(mockCloudLinks.performance?.href)); - } - - { - const billingLink = await findByTestId(/nav-item-group1.cloudLink3/); - expect(billingLink.textContent).toBe('Mock Billing & Subscriptions'); - const href = billingLink.getAttribute('href'); - expect(href).toBe(stripLastChar(mockCloudLinks.billingAndSub?.href)); - } - - { - const deploymentLink = await findByTestId(/nav-item-group1.cloudLink4/); - expect(deploymentLink.textContent).toBe('Mock Deployment'); - const href = deploymentLink.getAttribute('href'); - expect(href).toBe(stripLastChar(mockCloudLinks.deployment?.href)); - } - } catch (e) { - errorHandler(type)(e); - } + ], }; - // -- Default navigation - { - const navigationBody: Array> = [ - { - type: 'navGroup', - id: 'group1', - defaultIsCollapsed: false, - children: [ - { id: 'cloudLink1', cloudLink: 'userAndRoles' }, - { id: 'cloudLink2', cloudLink: 'performance' }, - { id: 'cloudLink3', cloudLink: 'billingAndSub' }, - { id: 'cloudLink4', cloudLink: 'deployment' }, - ], - }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - }); - - await runTests('treeDef', renderResult); - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - - - - - - ), - }); + const { findByTestId } = renderNavigation({ + navTreeDef: of(navTree), + services: { recentlyAccessed$ }, + }); - await runTests('uiComponents', renderResult); - } + expect(await findByTestId('nav-bucket-recentlyAccessed')).toBeVisible(); + expect((await findByTestId('nav-bucket-recentlyAccessed')).textContent).toBe( + 'RecentThis is an exampleAnother example' + ); }); }); diff --git a/packages/shared-ux/chrome/navigation/__jest__/links.test.tsx b/packages/shared-ux/chrome/navigation/__jest__/links.test.tsx deleted file mode 100644 index c52f56e3075d4..0000000000000 --- a/packages/shared-ux/chrome/navigation/__jest__/links.test.tsx +++ /dev/null @@ -1,233 +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 './setup_jest_mocks'; -import React from 'react'; -import { type RenderResult } from '@testing-library/react'; -import { of } from 'rxjs'; - -import { Navigation } from '../src/ui/components/navigation'; -import type { RootNavigationItemDefinition } from '../src/ui/types'; -import { NavigationServices } from '../types'; -import { - getMockFn, - renderNavigation, - errorHandler, - TestType, - type ProjectNavigationChangeListener, -} from './utils'; - -describe('Links', () => { - test('should filter out unknown deeplinks', async () => { - const onProjectNavigationChange = getMockFn(); - const unknownLinkId = 'unknown'; - - const deepLinks$: NavigationServices['deepLinks$'] = of({ - item1: { - id: 'item1', - title: 'Title from deeplink', - baseUrl: '', - url: '', - href: '', - }, - }); - - const runTests = async (type: TestType, { findByTestId, queryByTestId }: RenderResult) => { - try { - expect(await queryByTestId(new RegExp(`nav-item-root.group1.${unknownLinkId}`))).toBeNull(); - expect(await findByTestId(/nav-item-root.group1.item1/)).toBeVisible(); - expect(await findByTestId(/nav-item-root.group1.item1/)).toBeVisible(); - - expect(onProjectNavigationChange).toHaveBeenCalled(); - const lastCall = - onProjectNavigationChange.mock.calls[onProjectNavigationChange.mock.calls.length - 1]; - const [{ navigationTree }] = lastCall; - const [root] = navigationTree; - expect(root.id).toBe('root'); - expect(root.children?.length).toBe(1); - expect(root.children?.[0].children?.length).toBe(1); - expect(root.children?.[0].children?.[0].id).toBe('item1'); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ - { - type: 'navGroup', - id: 'root', - defaultIsCollapsed: false, - children: [ - { - id: 'group1', - defaultIsCollapsed: false, - children: [ - { - link: 'item1', - }, - { - link: unknownLinkId, - }, - ], - }, - ], - }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - onProjectNavigationChange, - services: { deepLinks$ }, - }); - - await runTests('treeDef', renderResult); - - renderResult.unmount(); - onProjectNavigationChange.mockReset(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - link="item1" /> - {/* Should be removed */} - link={unknownLinkId} title="Should NOT be there" /> - - - - ), - onProjectNavigationChange, - services: { deepLinks$ }, - }); - - await runTests('uiComponents', renderResult); - } - }); - - test('should allow href for absolute links', async () => { - const onProjectNavigationChange = getMockFn(); - - const runTests = async (type: TestType, { debug }: RenderResult) => { - try { - expect(onProjectNavigationChange).toHaveBeenCalled(); - const lastCall = - onProjectNavigationChange.mock.calls[onProjectNavigationChange.mock.calls.length - 1]; - const [{ navigationTree }] = lastCall; - - const [root] = navigationTree; - expect(root.children?.[0].href).toBe('https://example.com'); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ - { - type: 'navGroup', - id: 'root', - defaultIsCollapsed: false, - children: [ - { - id: 'item1', - title: 'Item 1', - href: 'https://example.com', - }, - ], - }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - onProjectNavigationChange, - }); - - await runTests('treeDef', renderResult); - - renderResult.unmount(); - onProjectNavigationChange.mockReset(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - - - ), - onProjectNavigationChange, - }); - - await runTests('uiComponents', renderResult); - } - }); - - test('should throw if href is not an absolute links', async () => { - // We'll mock the console.error to avoid dumping the (expected) error in the console - // source: https://github.com/jestjs/jest/pull/5267#issuecomment-356605468 - jest.spyOn(console, 'error'); - // @ts-expect-error we're mocking the console so "mockImplementation" exists - // eslint-disable-next-line no-console - console.error.mockImplementation(() => {}); - - // -- Default navigation - { - const navigationBody: Array> = [ - { - type: 'navGroup', - id: 'root', - defaultIsCollapsed: false, - children: [ - { - id: 'item1', - title: 'Item 1', - href: '../dashboards', - }, - ], - }, - ]; - - const expectToThrow = () => { - renderNavigation({ - navTreeDef: { body: navigationBody }, - }); - }; - - expect(expectToThrow).toThrowError('href must be an absolute URL. Node id [item1].'); - } - - // -- With UI Components - { - const expectToThrow = () => { - renderNavigation({ - navigationElement: ( - - - - - - ), - }); - }; - - expect(expectToThrow).toThrowError('href must be an absolute URL. Node id [item1].'); - // @ts-expect-error we're mocking the console so "mockImplementation" exists - // eslint-disable-next-line no-console - console.error.mockRestore(); - } - }); -}); diff --git a/packages/shared-ux/chrome/navigation/__jest__/panel.test.tsx b/packages/shared-ux/chrome/navigation/__jest__/panel.test.tsx index e588ed384c112..6ad603ab548c5 100644 --- a/packages/shared-ux/chrome/navigation/__jest__/panel.test.tsx +++ b/packages/shared-ux/chrome/navigation/__jest__/panel.test.tsx @@ -7,175 +7,102 @@ */ import './setup_jest_mocks'; import React from 'react'; -import { type RenderResult } from '@testing-library/react'; -import { BehaviorSubject } from 'rxjs'; -import type { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; +import { BehaviorSubject, of } from 'rxjs'; +import type { + ChromeProjectNavigationNode, + NavigationTreeDefinitionUI, +} from '@kbn/core-chrome-browser'; -import { Navigation } from '../src/ui/components/navigation'; -import type { RootNavigationItemDefinition } from '../src/ui/types'; import { PanelContentProvider } from '../src/ui'; -import { - renderNavigation, - errorHandler, - TestType, - getMockFn, - ProjectNavigationChangeListener, -} from './utils'; +import { renderNavigation } from './utils'; describe('Panel', () => { test('should render group as panel opener', async () => { - const onProjectNavigationChange = getMockFn(); - - const runTests = async (type: TestType, { findByTestId, queryByTestId }: RenderResult) => { - try { - expect(await findByTestId(/panelOpener-root.group1/)).toBeVisible(); - expect(queryByTestId(/sideNavPanel/)).toBeNull(); - (await findByTestId(/panelOpener-root.group1/)).click(); // open the panel - expect(queryByTestId(/sideNavPanel/)).toBeVisible(); - - expect(onProjectNavigationChange).toHaveBeenCalled(); - const lastCall = - onProjectNavigationChange.mock.calls[onProjectNavigationChange.mock.calls.length - 1]; - const [{ navigationTree }] = lastCall; - - const [root] = navigationTree; - expect(root.id).toBe('root'); - expect(root.children?.[0]).toMatchObject({ - id: 'group1', - renderAs: 'panelOpener', - children: [ - { - id: 'management', - title: 'Deeplink management', - }, - ], - }); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: RootNavigationItemDefinition[] = [ + const navigationTree: NavigationTreeDefinitionUI = { + body: [ { - type: 'navGroup', id: 'root', + title: 'Root', + path: 'root', isCollapsible: false, children: [ { id: 'group1', - link: 'dashboards', + title: 'Group 1', + href: '/app/item1', + path: 'root.group1', renderAs: 'panelOpener', - children: [{ link: 'management' }], + children: [ + { + id: 'item1', + title: 'Item 1', + href: '/app/item1', + path: 'root.group1.item1', + }, + ], }, ], }, - ]; + ], + }; - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - onProjectNavigationChange, - }); + const { findByTestId, queryByTestId } = renderNavigation({ + navTreeDef: of(navigationTree), + }); - await runTests('treeDef', renderResult); - - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - - - - - ), - onProjectNavigationChange, - }); - await runTests('uiComponents', renderResult); - } + expect(await findByTestId(/panelOpener-root.group1/)).toBeVisible(); + expect(queryByTestId(/sideNavPanel/)).toBeNull(); + (await findByTestId(/panelOpener-root.group1/)).click(); // open the panel + expect(queryByTestId(/sideNavPanel/)).toBeVisible(); }); test('should not render group if all children are hidden', async () => { - const onProjectNavigationChange = getMockFn(); - - const runTests = async (type: TestType, { queryByTestId }: RenderResult) => { - try { - expect(queryByTestId(/panelOpener-root.group1/)).toBeNull(); - expect(queryByTestId(/panelOpener-root.group2/)).toBeNull(); - expect(queryByTestId(/panelOpener-root.group3/)).toBeVisible(); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ + const navigationTree: NavigationTreeDefinitionUI = { + body: [ { - type: 'navGroup', id: 'root', + title: 'Root', + path: 'root', isCollapsible: false, children: [ { id: 'group1', - link: 'dashboards', + title: 'Group 1', + path: 'root.group1', + href: '/app/item1', renderAs: 'panelOpener', - children: [{ link: 'unknown' }], + children: [ + // All children are hidden, this group should not render + { + id: 'item1', + title: 'Item 1', + href: '/app/item1', + path: 'root.group1.item1', + sideNavStatus: 'hidden', + }, + ], }, { id: 'group2', - link: 'dashboards', + title: 'Group 2', + path: 'root.group2', renderAs: 'panelOpener', - children: [{ link: 'management', sideNavStatus: 'hidden' }], - }, - { - id: 'group3', - link: 'dashboards', - renderAs: 'panelOpener', - children: [{ link: 'management' }], // sideNavStatus is "visible" by default + children: [ + // sideNavStatus is "visible" by default + { id: 'item1', title: 'Item 1', href: '/app/item1', path: 'root.group2.item1' }, + ], }, ], }, - ]; + ], + }; - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - onProjectNavigationChange, - }); + const { queryByTestId } = renderNavigation({ + navTreeDef: of(navigationTree), + }); - await runTests('treeDef', renderResult); - - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - link="unknown" /> - - - - - - - - - - ), - onProjectNavigationChange, - }); - await runTests('uiComponents', renderResult); - } + expect(queryByTestId(/panelOpener-root.group1/)).toBeNull(); + expect(queryByTestId(/panelOpener-root.group2/)).toBeVisible(); }); describe('custom content', () => { @@ -216,330 +143,254 @@ describe('Panel', () => { ], ]); - const runTests = async (type: TestType, { queryByTestId }: RenderResult) => { - try { - queryByTestId(/panelOpener-root.group1/)?.click(); // open the panel - - expect(queryByTestId(/customPanelContent/)).toBeVisible(); - // Test that the selected node is correclty passed - expect(queryByTestId(/customPanelSelectedNode/)?.textContent).toBe('root.group1'); - // Test that the active nodes are correclty passed - expect(queryByTestId(/customPanelActiveNodes/)?.textContent).toBe( - 'activeGroup1activeItem1' - ); - // Test that handler to close the panel is correctly passed - queryByTestId(/customPanelCloseBtn/)?.click(); // close the panel - expect(queryByTestId(/customPanelContent/)).toBeNull(); - expect(queryByTestId(/sideNavPanel/)).toBeNull(); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ + const navTree: NavigationTreeDefinitionUI = { + body: [ { - type: 'navGroup', id: 'root', + title: 'Root', + path: 'root', isCollapsible: false, children: [ { id: 'group1', - link: 'dashboards', + title: 'Group 1', + path: 'root.group1', + href: '/app/item1', renderAs: 'panelOpener', - children: [{ link: 'management' }], + children: [ + { id: 'item1', title: 'Item 1', href: '/app/item1', path: 'root.group1.item1' }, + ], }, ], }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - panelContentProvider, - services: { activeNodes$ }, - }); - - await runTests('treeDef', renderResult); - - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - - - - - ), - services: { activeNodes$ }, - }); - await runTests('uiComponents', renderResult); - } + ], + }; + + const { queryByTestId } = renderNavigation({ + navTreeDef: of(navTree), + panelContentProvider, + services: { activeNodes$ }, + }); + + expect(queryByTestId(/sideNavPanel/)).toBeNull(); + expect(queryByTestId(/customPanelContent/)).toBeNull(); + + queryByTestId(/panelOpener-root.group1/)?.click(); // open the panel + + expect(queryByTestId(/sideNavPanel/)).not.toBeNull(); + expect(queryByTestId(/customPanelContent/)).not.toBeNull(); + expect(queryByTestId(/customPanelContent/)).toBeVisible(); + // Test that the selected node is correclty passed + expect(queryByTestId(/customPanelSelectedNode/)?.textContent).toBe('root.group1'); + // Test that the active nodes are correclty passed + expect(queryByTestId(/customPanelActiveNodes/)?.textContent).toBe('activeGroup1activeItem1'); + // Test that handler to close the panel is correctly passed + queryByTestId(/customPanelCloseBtn/)?.click(); // close the panel + expect(queryByTestId(/customPanelContent/)).toBeNull(); + expect(queryByTestId(/sideNavPanel/)).toBeNull(); }); }); describe('auto generated content', () => { test('should rendre block groups with title', async () => { - const runTests = async ( - type: TestType, - { queryByTestId, queryAllByTestId }: RenderResult - ) => { - try { - queryByTestId(/panelOpener-root.group1/)?.click(); // open the panel - - expect(queryByTestId(/panelGroupId-foo/)).toBeVisible(); - expect(queryByTestId(/panelGroupTitleId-foo/)?.textContent).toBe('Foo'); - - const panelNavItems = queryAllByTestId(/panelNavItem/); - expect(panelNavItems.length).toBe(2); // "item2" has been filtered out as it is hidden - expect(panelNavItems.map(({ textContent }) => textContent?.trim())).toEqual([ - 'Item 1', - 'Item 3', - ]); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ + const navTree: NavigationTreeDefinitionUI = { + body: [ { - type: 'navGroup', id: 'root', + title: 'Root', + path: 'root', isCollapsible: false, children: [ { id: 'group1', - link: 'dashboards', + title: 'Group 1', + path: 'root.group1', + href: '/app/item1', renderAs: 'panelOpener', children: [ { id: 'foo', title: 'Foo', + path: 'root.group1.foo', children: [ - { id: 'item1', link: 'management', title: 'Item 1' }, - { id: 'item2', link: 'management', title: 'Item 2', sideNavStatus: 'hidden' }, - { id: 'item3', link: 'management', title: 'Item 3' }, + { + id: 'item1', + href: '/app/item1', + path: 'root.group2.foo.item1', + title: 'Item 1', + }, + { + id: 'item2', + href: '/app/item2', + path: 'root.group2.foo.item2', + title: 'Item 2', + sideNavStatus: 'hidden', + }, + { + id: 'item3', + href: '/app/item3', + path: 'root.group2.foo.item3', + title: 'Item 3', + }, ], }, ], }, ], }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - }); - - await runTests('treeDef', renderResult); - - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - - - - - - - - - ), - }); - await runTests('uiComponents', renderResult); - } + ], + }; + + const { queryByTestId, queryAllByTestId } = renderNavigation({ + navTreeDef: of(navTree), + }); + + queryByTestId(/panelOpener-root.group1/)?.click(); // open the panel + + expect(queryByTestId(/panelGroupId-foo/)).toBeVisible(); + expect(queryByTestId(/panelGroupTitleId-foo/)?.textContent).toBe('Foo'); + + const panelNavItems = queryAllByTestId(/panelNavItem/); + expect(panelNavItems.length).toBe(2); // "item2" has been filtered out as it is hidden + expect(panelNavItems.map(({ textContent }) => textContent?.trim())).toEqual([ + 'Item 1', + 'Item 3', + ]); }); test('should rendre block groups without title', async () => { - const runTests = async ( - type: TestType, - { queryByTestId, queryAllByTestId }: RenderResult - ) => { - try { - queryByTestId(/panelOpener-root.group1/)?.click(); // open the panel - - expect(queryByTestId(/panelGroupTitleId-foo/)).toBeNull(); // No title rendered - - const panelNavItems = queryAllByTestId(/panelNavItem/); - expect(panelNavItems.length).toBe(2); // "item2" has been filtered out as it is hidden - expect(panelNavItems.map(({ textContent }) => textContent?.trim())).toEqual([ - 'Item 1', - 'Item 3', - ]); - } catch (e) { - errorHandler(type)(e); - } - }; - - // -- Default navigation - { - const navigationBody: Array> = [ + const navTree: NavigationTreeDefinitionUI = { + body: [ { - type: 'navGroup', id: 'root', + title: 'Root', + path: 'root', isCollapsible: false, children: [ { id: 'group1', - link: 'dashboards', + title: 'Group 1', + path: 'root.group1', + href: '/app/item1', renderAs: 'panelOpener', children: [ { id: 'foo', + title: '', // Empty title are not rendered + path: 'root.group1.foo', children: [ - { id: 'item1', link: 'management', title: 'Item 1' }, - { id: 'item2', link: 'management', title: 'Item 2', sideNavStatus: 'hidden' }, - { id: 'item3', link: 'management', title: 'Item 3' }, + { + id: 'item1', + href: '/app/item1', + path: 'root.group2.foo.item1', + title: 'Item 1', + }, + { + id: 'item2', + href: '/app/item2', + path: 'root.group2.foo.item2', + title: 'Item 2', + sideNavStatus: 'hidden', + }, + { + id: 'item3', + href: '/app/item3', + path: 'root.group2.foo.item3', + title: 'Item 3', + }, ], }, ], }, ], }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - }); - - await runTests('treeDef', renderResult); - - renderResult.unmount(); - } - - // -- With UI Components - { - // const renderResult = renderNavigation({ - // navigationElement: ( - // - // - // - // - // - // - // - // - // - // - // - // ), - // }); - // await runTests('uiComponents', renderResult); - } - }); - - test('should rendre accordion groups', async () => { - const runTests = async ( - type: TestType, - { queryByTestId, queryAllByTestId, findByRole }: RenderResult - ) => { - try { - queryByTestId(/panelOpener-root.group1/)?.click(); // open the panel - - expect(queryByTestId(/panelGroupId-foo/)).toBeVisible(); + ], + }; - const panelNavItems = queryAllByTestId(/panelNavItem/); - expect(panelNavItems.length).toBe(2); // "item2" has been filtered out as it is hidden + const { queryByTestId, queryAllByTestId } = renderNavigation({ + navTreeDef: of(navTree), + }); - expect(queryByTestId(/panelNavItem-id-item1/)).not.toBeVisible(); // Accordion is collapsed - expect(queryByTestId(/panelNavItem-id-item3/)).not.toBeVisible(); // Accordion is collapsed + queryByTestId(/panelOpener-root.group1/)?.click(); // open the panel - queryByTestId(/panelAccordionBtnId-foo/)?.click(); // Expand accordion + expect(queryByTestId(/panelGroupTitleId-foo/)).toBeNull(); // No title rendered - expect(queryByTestId(/panelNavItem-id-item1/)).toBeVisible(); - expect(queryByTestId(/panelNavItem-id-item3/)).toBeVisible(); - } catch (e) { - errorHandler(type)(e); - } - }; + const panelNavItems = queryAllByTestId(/panelNavItem/); + expect(panelNavItems.length).toBe(2); // "item2" has been filtered out as it is hidden + expect(panelNavItems.map(({ textContent }) => textContent?.trim())).toEqual([ + 'Item 1', + 'Item 3', + ]); + }); - // -- Default navigation - { - const navigationBody: Array> = [ + test('should rendre accordion groups', async () => { + const navTree: NavigationTreeDefinitionUI = { + body: [ { - type: 'navGroup', id: 'root', + title: 'Root', + path: 'root', isCollapsible: false, children: [ { id: 'group1', - link: 'dashboards', + title: 'Group 1', + path: 'root.group1', + href: '/app/item1', renderAs: 'panelOpener', children: [ { id: 'foo', title: 'Foo', + path: 'root.group1.foo', renderAs: 'accordion', children: [ - { id: 'item1', link: 'management', title: 'Item 1' }, - { id: 'item2', link: 'management', title: 'Item 2', sideNavStatus: 'hidden' }, - { id: 'item3', link: 'management', title: 'Item 3' }, + { + id: 'item1', + href: '/app/item1', + path: 'root.group2.foo.item1', + title: 'Item 1', + }, + { + id: 'item2', + href: '/app/item2', + path: 'root.group2.foo.item2', + title: 'Item 2', + sideNavStatus: 'hidden', + }, + { + id: 'item3', + href: '/app/item3', + path: 'root.group2.foo.item3', + title: 'Item 3', + }, ], }, ], }, ], }, - ]; - - const renderResult = renderNavigation({ - navTreeDef: { body: navigationBody }, - }); - - await runTests('treeDef', renderResult); - - renderResult.unmount(); - } - - // -- With UI Components - { - const renderResult = renderNavigation({ - navigationElement: ( - - - - - - - - - - - - ), - }); - await runTests('uiComponents', renderResult); - } + ], + }; + + const { queryByTestId, queryAllByTestId } = renderNavigation({ + navTreeDef: of(navTree), + }); + + queryByTestId(/panelOpener-root.group1/)?.click(); // open the panel + + expect(queryByTestId(/panelGroupId-foo/)).toBeVisible(); + + const panelNavItems = queryAllByTestId(/panelNavItem/); + expect(panelNavItems.length).toBe(2); // "item2" has been filtered out as it is hidden + + expect(queryByTestId(/panelNavItem-id-item1/)).not.toBeVisible(); // Accordion is collapsed + expect(queryByTestId(/panelNavItem-id-item3/)).not.toBeVisible(); // Accordion is collapsed + + queryByTestId(/panelAccordionBtnId-foo/)?.click(); // Expand accordion + + expect(queryByTestId(/panelNavItem-id-item1/)).toBeVisible(); + expect(queryByTestId(/panelNavItem-id-item3/)).toBeVisible(); }); }); }); diff --git a/packages/shared-ux/chrome/navigation/__jest__/project_navigation.test.tsx b/packages/shared-ux/chrome/navigation/__jest__/project_navigation.test.tsx deleted file mode 100644 index a707d1e84b192..0000000000000 --- a/packages/shared-ux/chrome/navigation/__jest__/project_navigation.test.tsx +++ /dev/null @@ -1,83 +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 './setup_jest_mocks'; -import { of } from 'rxjs'; -import type { ChromeNavLink } from '@kbn/core-chrome-browser'; - -import { navLinksMock } from '../mocks/src/navlinks'; -import { NavigationServices } from '../types'; -import type { ProjectNavigationTreeDefinition } from '../src/ui/types'; -import { getMockFn, renderNavigation, type ProjectNavigationChangeListener } from './utils'; - -describe('Default navigation', () => { - /** - * INFO: the navigation system support providing "just" the serverless project navigation and we - * render all the rest (other sections, footer, recently accessed...) - * For now, none of the serverless project uses this feature as they all have completely different navs - */ - test('builds the full navigation tree when only the project is provided', async () => { - const onProjectNavigationChange = getMockFn(); - const deepLinks$: NavigationServices['deepLinks$'] = of({ - ...navLinksMock.reduce>((acc, navLink) => { - acc[navLink.id] = navLink; - return acc; - }, {}), - item2: { - id: 'item2', - title: 'Title from deeplink!', - baseUrl: '', - url: '', - href: '', - }, - }); - - const projectNavigationTree: ProjectNavigationTreeDefinition = [ - { - id: 'group1', - title: 'Group 1', - children: [ - { - id: 'item1', - title: 'Item 1', - }, - { - id: 'item2', - link: 'item2', // Title from deeplink - }, - { - id: 'item3', - link: 'item2', - title: 'Deeplink title overriden', // Override title from deeplink - }, - { - link: 'disabled', - title: 'Should NOT be there', - }, - ], - }, - ]; - - renderNavigation({ - projectNavigationTree, - onProjectNavigationChange, - services: { deepLinks$ }, - }); - - expect(onProjectNavigationChange).toHaveBeenCalled(); - const lastCall = - onProjectNavigationChange.mock.calls[onProjectNavigationChange.mock.calls.length - 1]; - const [navTreeGenerated] = lastCall; - - expect(navTreeGenerated).toEqual({ - navigationTree: expect.any(Array), - }); - - // The project navigation tree passed - expect(navTreeGenerated.navigationTree).toMatchSnapshot(); - }); -}); diff --git a/packages/shared-ux/chrome/navigation/__jest__/utils.tsx b/packages/shared-ux/chrome/navigation/__jest__/utils.tsx index 547f71277683b..04d67c914ad42 100644 --- a/packages/shared-ux/chrome/navigation/__jest__/utils.tsx +++ b/packages/shared-ux/chrome/navigation/__jest__/utils.tsx @@ -7,69 +7,54 @@ */ import React from 'react'; import { render, type RenderResult } from '@testing-library/react'; -import type { ChromeProjectNavigation } from '@kbn/core-chrome-browser'; - +import { BehaviorSubject, of } from 'rxjs'; +import type { Observable } from 'rxjs'; +import type { + NavigationTreeDefinitionUI, + ChromeProjectNavigationNode, +} from '@kbn/core-chrome-browser'; import { EuiThemeProvider } from '@elastic/eui'; -import { getServicesMock } from '../mocks/src/jest'; + import { NavigationProvider } from '../src/services'; -import { DefaultNavigation } from '../src/ui/default_navigation'; +import { Navigation } from '../src/ui/navigation'; import type { PanelContentProvider } from '../src/ui'; -import type { NavigationTreeDefinition, ProjectNavigationTreeDefinition } from '../src/ui/types'; -import { NavigationServices } from '../types'; +import { NavigationServices } from '../src/types'; + +const activeNodes: ChromeProjectNavigationNode[][] = []; + +export const getServicesMock = (): NavigationServices => { + const navigateToUrl = jest.fn().mockResolvedValue(undefined); + const basePath = { prepend: jest.fn((path: string) => `/base${path}`) }; + const recentlyAccessed$ = new BehaviorSubject([]); + + return { + basePath, + recentlyAccessed$, + navIsOpen: true, + navigateToUrl, + activeNodes$: of(activeNodes), + isSideNavCollapsed: false, + }; +}; const services = getServicesMock(); -export type ProjectNavigationChangeListener = (projectNavigation: ChromeProjectNavigation) => void; -export type TestType = 'treeDef' | 'uiComponents'; - export const renderNavigation = ({ navTreeDef, - projectNavigationTree, - navigationElement, services: overrideServices = {}, - onProjectNavigationChange = () => undefined, panelContentProvider, }: { - navTreeDef?: NavigationTreeDefinition; - projectNavigationTree?: ProjectNavigationTreeDefinition; - navigationElement?: React.ReactElement; + navTreeDef: Observable; services?: Partial; - onProjectNavigationChange?: ProjectNavigationChangeListener; panelContentProvider?: PanelContentProvider; }): RenderResult => { - const element = navigationElement ?? ( - - ); - const renderResult = render( - - {element} + + ); return renderResult; }; - -export const errorHandler = (type: TestType) => (e: Error) => { - const err = new Error(`Failed to run tests for ${type}.`); - err.stack = e.stack; - // eslint-disable-next-line no-console - console.error(err.message); - throw err; -}; - -type ArgsType = T extends (...args: infer A) => any ? A : never; - -export function getMockFn any>() { - return jest.fn() as jest.Mock>; -} diff --git a/packages/shared-ux/chrome/navigation/index.ts b/packages/shared-ux/chrome/navigation/index.ts index 1d2c89f25e4d6..aadb517ae31bc 100644 --- a/packages/shared-ux/chrome/navigation/index.ts +++ b/packages/shared-ux/chrome/navigation/index.ts @@ -8,20 +8,9 @@ export { NavigationKibanaProvider, NavigationProvider } from './src/services'; -export { DefaultNavigation, getPresets, Navigation } from './src/ui'; +export { Navigation } from './src/ui'; +export type { NavigationProps } from './src/ui'; -export type { - GroupDefinition, - PresetDefinition, - ItemDefinition, - NavigationGroupPreset, - NavigationTreeDefinition, - ProjectNavigationDefinition, - RecentlyAccessedDefinition, - RootNavigationItemDefinition, - PanelComponentProps, - PanelContent, - PanelContentProvider, -} from './src/ui'; +export type { PanelComponentProps, PanelContent, PanelContentProvider } from './src/ui'; -export type { NavigationServices } from './types'; +export type { NavigationServices, NavigationKibanaDependencies } from './src/types'; diff --git a/packages/shared-ux/chrome/navigation/mocks/index.ts b/packages/shared-ux/chrome/navigation/mocks/index.ts index d75c847f74ecd..60a40c99748c9 100644 --- a/packages/shared-ux/chrome/navigation/mocks/index.ts +++ b/packages/shared-ux/chrome/navigation/mocks/index.ts @@ -6,7 +6,5 @@ * Side Public License, v 1. */ -export { getServicesMock as getNavigationServicesMock } from './src/jest'; -export { StorybookMock as NavigationStorybookMock } from './src/storybook'; -export type { Params as NavigationStorybookParams } from './src/storybook'; -export { navLinksMock } from './src/navlinks'; +export { StorybookMock as NavigationStorybookMock } from './storybook'; +export type { Params as NavigationStorybookParams } from './storybook'; diff --git a/packages/shared-ux/chrome/navigation/mocks/src/jest.ts b/packages/shared-ux/chrome/navigation/mocks/src/jest.ts deleted file mode 100644 index 750b3faada7b1..0000000000000 --- a/packages/shared-ux/chrome/navigation/mocks/src/jest.ts +++ /dev/null @@ -1,59 +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 { ChromeNavLink, ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; -import { BehaviorSubject, of } from 'rxjs'; -import { NavigationServices } from '../../types'; -import { navLinksMock } from './navlinks'; - -const activeNodes: ChromeProjectNavigationNode[][] = []; - -const defaultDeepLinks = { - ...navLinksMock.reduce>((acc, navLink) => { - acc[navLink.id] = navLink; - return acc; - }, {}), -}; - -export const getServicesMock = ({ - deepLinks = defaultDeepLinks, -}: { deepLinks?: Readonly> } = {}): NavigationServices => { - const navigateToUrl = jest.fn().mockResolvedValue(undefined); - const basePath = { prepend: jest.fn((path: string) => `/base${path}`) }; - const recentlyAccessed$ = new BehaviorSubject([]); - const deepLinks$ = new BehaviorSubject(deepLinks); - - return { - basePath, - recentlyAccessed$, - deepLinks$, - navIsOpen: true, - navigateToUrl, - onProjectNavigationChange: jest.fn(), - activeNodes$: of(activeNodes), - isSideNavCollapsed: false, - cloudLinks: { - billingAndSub: { - title: 'Mock Billing & Subscriptions', - href: 'https://cloud.elastic.co/account/billing/', - }, - performance: { - title: 'Mock Performance', - href: 'https://cloud.elastic.co/deployments/123456789/performance/', - }, - userAndRoles: { - title: 'Mock Users & Roles', - href: 'https://cloud.elastic.co/deployments/123456789/security/users/', - }, - deployment: { - title: 'Mock Deployment', - href: 'https://cloud.elastic.co/deployments/123456789/', - }, - }, - }; -}; diff --git a/packages/shared-ux/chrome/navigation/mocks/src/navlinks.ts b/packages/shared-ux/chrome/navigation/mocks/src/navlinks.ts deleted file mode 100644 index bcc718ec36566..0000000000000 --- a/packages/shared-ux/chrome/navigation/mocks/src/navlinks.ts +++ /dev/null @@ -1,85 +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 type { AppDeepLinkId, ChromeNavLink } from '@kbn/core-chrome-browser'; - -const getNavLink = (id: string): ChromeNavLink => { - return { - id, - title: `Deeplink ${id}`, - href: `http://mocked/${id}`, - baseUrl: `/mocked`, - url: `/mocked/${id}`, - }; -}; - -const allNavLinks: AppDeepLinkId[] = [ - 'dashboards', - 'dev_tools', - 'dev_tools:console', - 'dev_tools:grokdebugger', - 'dev_tools:painless_lab', - 'dev_tools:searchprofiler', - 'discover', - 'fleet', - 'integrations', - 'management', - 'management:aiAssistantManagementSelection', - 'management:aiAssistantManagementObservability', - 'management:api_keys', - 'management:cases', - 'management:cross_cluster_replication', - 'management:dataViews', - 'management:index_lifecycle_management', - 'management:index_management', - 'management:ingest_pipelines', - 'management:jobsListLink', - 'management:objects', - 'management:pipelines', - 'management:reporting', - 'management:rollup_jobs', - 'management:settings', - 'management:snapshot_restore', - 'management:spaces', - 'management:tags', - 'management:transform', - 'management:triggersActions', - 'management:triggersActionsConnectors', - 'management:watcher', - 'ml', - 'ml:aiOps', - 'ml:analyticsMap', - 'ml:anomalyDetection', - 'ml:anomalyExplorer', - 'ml:calendarSettings', - 'ml:calendarSettings', - 'ml:changePointDetections', - 'ml:dataFrameAnalytics', - 'ml:dataVisualizer', - 'ml:fileUpload', - 'ml:filterListsSettings', - 'ml:indexDataVisualizer', - 'ml:dataDrift', - 'ml:logPatternAnalysis', - 'ml:logRateAnalysis', - 'ml:memoryUsage', - 'ml:modelManagement', - 'ml:nodes', - 'ml:nodesOverview', - 'ml:notifications', - 'ml:overview', - 'ml:resultExplorer', - 'ml:settings', - 'ml:singleMetricViewer', - 'monitoring', - 'osquery', - 'serverlessElasticsearch', - 'visualize', -]; - -export const navLinksMock = allNavLinks.map(getNavLink); diff --git a/packages/shared-ux/chrome/navigation/mocks/src/storybook.ts b/packages/shared-ux/chrome/navigation/mocks/src/storybook.ts deleted file mode 100644 index 7a7d0e5fbe3ea..0000000000000 --- a/packages/shared-ux/chrome/navigation/mocks/src/storybook.ts +++ /dev/null @@ -1,68 +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 { AbstractStorybookMock } from '@kbn/shared-ux-storybook-mock'; -import { action } from '@storybook/addon-actions'; -import { BehaviorSubject } from 'rxjs'; -import { NavigationServices } from '../../types'; - -type Arguments = NavigationServices; -export type Params = Pick< - Arguments, - 'navIsOpen' | 'recentlyAccessed$' | 'activeNodes$' | 'deepLinks$' | 'onProjectNavigationChange' ->; - -export class StorybookMock extends AbstractStorybookMock<{}, NavigationServices> { - propArguments = {}; - - serviceArguments = { - navIsOpen: { - control: 'boolean', - defaultValue: true, - }, - }; - - dependencies = []; - - getServices(params: Params): NavigationServices { - const navAction = action('Navigate to'); - const navigateToUrl = (url: string) => { - navAction(url); - return Promise.resolve(); - }; - - return { - ...params, - basePath: { prepend: (suffix: string) => `/basepath${suffix}` }, - navigateToUrl, - recentlyAccessed$: params.recentlyAccessed$ ?? new BehaviorSubject([]), - deepLinks$: params.deepLinks$ ?? new BehaviorSubject({}), - onProjectNavigationChange: params.onProjectNavigationChange ?? (() => undefined), - activeNodes$: params.activeNodes$ ?? new BehaviorSubject([]), - isSideNavCollapsed: true, - cloudLinks: { - billingAndSub: { - title: 'Billing & Subscriptions', - href: 'https://cloud.elastic.co/account/billing', - }, - performance: { - title: 'Performance', - href: 'https://cloud.elastic.co/deployments/123456789/performance', - }, - userAndRoles: { - title: 'Users & Roles', - href: 'https://cloud.elastic.co/deployments/123456789/security/users', - }, - }, - }; - } - - getProps(params: Params) { - return params; - } -} diff --git a/packages/shared-ux/chrome/navigation/mocks/storybook.ts b/packages/shared-ux/chrome/navigation/mocks/storybook.ts new file mode 100644 index 0000000000000..c34819090c5f4 --- /dev/null +++ b/packages/shared-ux/chrome/navigation/mocks/storybook.ts @@ -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 { AbstractStorybookMock } from '@kbn/shared-ux-storybook-mock'; +import { action } from '@storybook/addon-actions'; +import { BehaviorSubject } from 'rxjs'; +import { NavigationServices } from '../src/types'; + +type Arguments = NavigationServices; +export type Params = Pick; + +export class StorybookMock extends AbstractStorybookMock<{}, NavigationServices> { + propArguments = {}; + + serviceArguments = { + navIsOpen: { + control: 'boolean', + defaultValue: true, + }, + }; + + dependencies = []; + + getServices(params: Params): NavigationServices { + const navAction = action('Navigate to'); + const navigateToUrl = (url: string) => { + navAction(url); + return Promise.resolve(); + }; + + return { + ...params, + basePath: { prepend: (suffix: string) => `/basepath${suffix}` }, + navigateToUrl, + recentlyAccessed$: params.recentlyAccessed$ ?? new BehaviorSubject([]), + activeNodes$: params.activeNodes$ ?? new BehaviorSubject([]), + isSideNavCollapsed: true, + }; + } + + getProps(params: Params) { + return params; + } +} diff --git a/packages/shared-ux/chrome/navigation/src/cloud_links.tsx b/packages/shared-ux/chrome/navigation/src/cloud_links.tsx deleted file mode 100644 index b900daa340b44..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/cloud_links.tsx +++ /dev/null @@ -1,76 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License - * 2.0 and the Server Side Public License, v 1; you may not use this file except - * in compliance with, at your election, the Elastic License 2.0 or the Server - * Side Public License, v 1. - */ -import { i18n } from '@kbn/i18n'; -import type { CloudLinkId } from '@kbn/core-chrome-browser'; - -export interface CloudLink { - title: string; - href: string; -} - -export type CloudLinks = { - [id in CloudLinkId]?: CloudLink; -}; - -export const getCloudLinks = (cloud: { - billingUrl?: string; - deploymentUrl?: string; - performanceUrl?: string; - usersAndRolesUrl?: string; -}): CloudLinks => { - const { billingUrl, deploymentUrl, performanceUrl, usersAndRolesUrl } = cloud; - - const links: CloudLinks = {}; - - if (usersAndRolesUrl) { - links.userAndRoles = { - title: i18n.translate( - 'sharedUXPackages.chrome.sideNavigation.cloudLinks.usersAndRolesLinkText', - { - defaultMessage: 'Users and roles', - } - ), - href: usersAndRolesUrl, - }; - } - - if (performanceUrl) { - links.performance = { - title: i18n.translate( - 'sharedUXPackages.chrome.sideNavigation.cloudLinks.performanceLinkText', - { - defaultMessage: 'Performance', - } - ), - href: performanceUrl, - }; - } - - if (billingUrl) { - links.billingAndSub = { - title: i18n.translate('sharedUXPackages.chrome.sideNavigation.cloudLinks.billingLinkText', { - defaultMessage: 'Billing and subscription', - }), - href: billingUrl, - }; - } - - if (deploymentUrl) { - links.deployment = { - title: i18n.translate( - 'sharedUXPackages.chrome.sideNavigation.cloudLinks.deploymentLinkText', - { - defaultMessage: 'Project', - } - ), - href: deploymentUrl, - }; - } - - return links; -}; diff --git a/packages/shared-ux/chrome/navigation/src/navnode_utils.ts b/packages/shared-ux/chrome/navigation/src/navnode_utils.ts deleted file mode 100644 index 561950959d082..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/navnode_utils.ts +++ /dev/null @@ -1,173 +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 type { - AppDeepLinkId, - ChromeNavLink, - ChromeProjectNavigationNode, - CloudLinkId, - SideNavNodeStatus, -} from '@kbn/core-chrome-browser'; - -import type { CloudLinks } from './cloud_links'; -import type { NodeProps } from './ui/types'; -import { getNavigationNodeHref, getNavigationNodeId, isAbsoluteLink } from './utils'; - -/** - * We don't have currently a way to know if a user has access to a Cloud section. - * TODO: This function will have to be revisited once we have an API from Cloud to know the user - * permissions. - */ -function hasUserAccessToCloudLink(): boolean { - return true; -} - -function getNodeStatus( - { - link, - deepLink, - cloudLink, - sideNavStatus, - }: { - link?: string; - deepLink?: ChromeNavLink; - cloudLink?: CloudLinkId; - sideNavStatus?: SideNavNodeStatus; - }, - { cloudLinks }: { cloudLinks: CloudLinks } -): SideNavNodeStatus | 'remove' { - if (link && !deepLink) { - // If a link is provided, but no deepLink is found, don't render anything - return 'remove'; - } - - if (cloudLink) { - if (!cloudLinks[cloudLink]) { - // Invalid cloudLinkId or link url has not been set in kibana.yml - return 'remove'; - } - if (!hasUserAccessToCloudLink()) return 'remove'; - } - - if (deepLink && deepLink.hidden) return 'hidden'; - - return sideNavStatus ?? 'visible'; -} - -function getTitleForNode< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id ->( - navNode: NodeProps, - { deepLink, cloudLinks }: { deepLink?: ChromeNavLink; cloudLinks: CloudLinks } -): string { - const { children } = navNode; - if (navNode.title) { - return navNode.title; - } - - if (typeof children === 'string') { - return children; - } - - if (deepLink?.title) { - return deepLink.title; - } - - if (navNode.cloudLink) { - return cloudLinks[navNode.cloudLink]?.title ?? ''; - } - - return ''; -} - -function validateNodeProps< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id ->({ id, link, href, cloudLink, renderAs }: NodeProps) { - if (link && cloudLink) { - throw new Error( - `[Chrome navigation] Error in node [${id}]. Only one of "link" or "cloudLink" can be provided.` - ); - } - if (href && cloudLink) { - throw new Error( - `[Chrome navigation] Error in node [${id}]. Only one of "href" or "cloudLink" can be provided.` - ); - } - if (renderAs === 'panelOpener' && !link) { - throw new Error( - `[Chrome navigation] Error in node [${id}]. If renderAs is set to "panelOpener", a "link" must also be provided.` - ); - } - if (renderAs === 'item' && !link) { - throw new Error( - `[Chrome navigation] Error in node [${id}]. If renderAs is set to "item", a "link" must also be provided.` - ); - } -} - -export const initNavNode = < - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id ->( - node: NodeProps, - { cloudLinks, deepLinks }: { cloudLinks: CloudLinks; deepLinks: Record } -): ChromeProjectNavigationNode | null => { - validateNodeProps(node); - - const { - cloudLink, - link, - parentNodePath, - rootIndex = 0, - treeDepth = 0, - index = 0, - children, - ...navNodeFromProps - } = node; - const deepLink = link !== undefined ? deepLinks[link] : undefined; - const sideNavStatus = getNodeStatus( - { - link, - deepLink, - cloudLink, - sideNavStatus: navNodeFromProps.sideNavStatus, - }, - { cloudLinks } - ); - if (sideNavStatus === 'remove') { - return null; - } - - const id = getNavigationNodeId(node, () => `node-${rootIndex}-${treeDepth}-${index}`) as Id; - const title = getTitleForNode(node, { deepLink, cloudLinks }); - const isElasticInternalLink = cloudLink != null; - const href = isElasticInternalLink ? cloudLinks[cloudLink]?.href : node.href; - const path = parentNodePath ? `${parentNodePath}.${id}` : id; - - if (href && !isAbsoluteLink(href)) { - throw new Error(`href must be an absolute URL. Node id [${id}].`); - } - - const navNode: ChromeProjectNavigationNode = { - ...navNodeFromProps, - id, - href: getNavigationNodeHref({ href, deepLink }), - path, - title, - deepLink, - isElasticInternalLink, - sideNavStatus, - }; - - return navNode; -}; diff --git a/packages/shared-ux/chrome/navigation/src/services.tsx b/packages/shared-ux/chrome/navigation/src/services.tsx index 54e45ede100e4..178b2d279e55a 100644 --- a/packages/shared-ux/chrome/navigation/src/services.tsx +++ b/packages/shared-ux/chrome/navigation/src/services.tsx @@ -6,51 +6,18 @@ * Side Public License, v 1. */ -import React, { FC, useContext, useMemo } from 'react'; +import React, { FC, useContext } from 'react'; import useObservable from 'react-use/lib/useObservable'; -import { map } from 'rxjs'; -import type { ChromeNavLink } from '@kbn/core-chrome-browser'; -import { NavigationKibanaDependencies, NavigationServices } from '../types'; -import { CloudLink, CloudLinks, getCloudLinks } from './cloud_links'; +import { NavigationKibanaDependencies, NavigationServices } from './types'; const Context = React.createContext(null); -const stripTrailingForwardSlash = (str: string) => { - return str[str.length - 1] === '/' ? str.substring(0, str.length - 1) : str; -}; - -const parseCloudURLs = (cloudLinks: CloudLinks): CloudLinks => { - const { userAndRoles, billingAndSub, deployment, performance } = cloudLinks; - - // We remove potential trailing forward slash ("/") at the end of the URL - // because it breaks future navigation in Cloud console once we navigate there. - const parseLink = (link?: CloudLink): CloudLink | undefined => { - if (!link) return undefined; - return { ...link, href: stripTrailingForwardSlash(link.href) }; - }; - - return { - ...cloudLinks, - userAndRoles: parseLink(userAndRoles), - billingAndSub: parseLink(billingAndSub), - deployment: parseLink(deployment), - performance: parseLink(performance), - }; -}; - /** * A Context Provider that provides services to the component and its dependencies. */ export const NavigationProvider: FC = ({ children, ...services }) => { - const servicesParsed = useMemo(() => { - return { - ...services, - cloudLinks: parseCloudURLs(services.cloudLinks), - }; - }, [services]); - - return {children}; + return {children}; }; /** @@ -60,40 +27,18 @@ export const NavigationKibanaProvider: FC = ({ children, ...dependencies }) => { - const { core, serverless, cloud } = dependencies; + const { core, activeNodes$ } = dependencies; const { chrome, http } = core; const { basePath } = http; const { navigateToUrl } = core.application; - const { billingUrl, deploymentUrl, performanceUrl, usersAndRolesUrl } = cloud; - - const cloudLinks: CloudLinks = useMemo(() => { - return parseCloudURLs( - getCloudLinks({ billingUrl, deploymentUrl, performanceUrl, usersAndRolesUrl }) - ); - }, [billingUrl, deploymentUrl, performanceUrl, usersAndRolesUrl]); const isSideNavCollapsed = useObservable(chrome.getIsSideNavCollapsed$(), true); - const navLinks$ = useMemo(() => chrome.navLinks.getNavLinks$(), [chrome.navLinks]); - const deepLinks$ = useMemo(() => { - return navLinks$.pipe( - map((navLinks) => { - return navLinks.reduce((acc, navLink) => { - acc[navLink.id] = navLink; - return acc; - }, {} as Record); - }) - ); - }, [navLinks$]); - const value: NavigationServices = { basePath, recentlyAccessed$: chrome.recentlyAccessed.get$(), - deepLinks$, navigateToUrl, navIsOpen: true, - onProjectNavigationChange: serverless.setNavigation, - activeNodes$: serverless.getActiveNavigationNodes$(), - cloudLinks, + activeNodes$, isSideNavCollapsed, }; diff --git a/packages/shared-ux/chrome/navigation/src/types.ts b/packages/shared-ux/chrome/navigation/src/types.ts new file mode 100644 index 0000000000000..f15bb1a51e117 --- /dev/null +++ b/packages/shared-ux/chrome/navigation/src/types.ts @@ -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 type { Observable } from 'rxjs'; +import type { IBasePath } from '@kbn/core-http-browser'; +import type { ApplicationStart } from '@kbn/core-application-browser'; + +import type { + ChromeNavLink, + ChromeProjectNavigationNode, + ChromeRecentlyAccessedHistoryItem, +} from '@kbn/core-chrome-browser'; + +type BasePathService = Pick; + +/** + * @internal + */ + +export type NavigateToUrlFn = ApplicationStart['navigateToUrl']; + +/** + * A list of services that are consumed by this component. + * @public + */ +export interface NavigationServices { + basePath: BasePathService; + recentlyAccessed$: Observable; + navIsOpen: boolean; + navigateToUrl: NavigateToUrlFn; + activeNodes$: Observable; + isSideNavCollapsed: boolean; +} + +/** + * An interface containing a collection of Kibana dependencies required to + * render this component + * @public + */ +export interface NavigationKibanaDependencies { + core: { + application: { navigateToUrl: NavigateToUrlFn }; + chrome: { + recentlyAccessed: { get$: () => Observable }; + navLinks: { + getNavLinks$: () => Observable>; + }; + getIsSideNavCollapsed$: () => Observable; + }; + http: { + basePath: BasePathService; + getLoadingCount$(): Observable; + }; + }; + activeNodes$: Observable; +} diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/index.ts b/packages/shared-ux/chrome/navigation/src/ui/components/index.ts index c4e66fcb72e75..64c073ffbeb6d 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/components/index.ts +++ b/packages/shared-ux/chrome/navigation/src/ui/components/index.ts @@ -6,8 +6,12 @@ * Side Public License, v 1. */ -export { Navigation } from './navigation'; +export { RecentlyAccessed } from './recently_accessed'; + +export { NavigationPanel, PanelProvider } from './panel'; + export type { Props as RecentlyAccessedProps } from './recently_accessed'; + export type { PanelContent, PanelComponentProps, diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation.tsx deleted file mode 100644 index d56495b810f4a..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation.tsx +++ /dev/null @@ -1,190 +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 React, { - createContext, - useCallback, - ReactNode, - useMemo, - useContext, - useRef, - Children, -} from 'react'; -import type { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; -import useObservable from 'react-use/lib/useObservable'; - -import { useNavigation as useNavigationServices } from '../../services'; -import { getChildType } from '../../utils'; -import { RegisterFunction, UnRegisterFunction } from '../types'; -import { NavigationFooter } from './navigation_footer'; -import { NavigationGroup } from './navigation_group'; -import { NavigationItem } from './navigation_item'; -import { NavigationUI } from './navigation_ui'; -import { RecentlyAccessed } from './recently_accessed'; -import { PanelProvider, type ContentProvider } from './panel'; - -interface Context { - register: RegisterFunction; - unstyled: boolean; - activeNodes: ChromeProjectNavigationNode[][]; -} - -const NavigationContext = createContext({ - register: () => () => {}, - unstyled: false, - activeNodes: [], -}); - -interface Props { - children: ReactNode; - /** - * Optional content provider for the navigation panels. Use it to render custom component - * inside the panel when the user clicks on a navigation item. - * If not provided the default content will be rendered. - */ - panelContentProvider?: ContentProvider; - /** - * Flag to indicate if the Navigation should not be styled with EUI components. - * If set to true, the children will be rendered as is. - */ - unstyled?: boolean; - dataTestSubj?: string; -} - -export function Navigation({ - children, - panelContentProvider, - unstyled = false, - dataTestSubj, -}: Props) { - const { onProjectNavigationChange, activeNodes$ } = useNavigationServices(); - - // We keep a reference of the order of the children that register themselves when mounting. - // This guarantees that the navTree items sent to the Chrome service has the same order - // that the nodes in the DOM. - const orderChildrenRef = useRef>({}); - const idx = useRef(0); - - const activeNodes = useObservable(activeNodes$, []); - const navigationItemsRef = useRef>({}); - - const onNavigationItemsChange = useCallback(() => { - const navigationTree = Object.values(navigationItemsRef.current).sort((a, b) => { - const aOrder = orderChildrenRef.current[a.id]; - const bOrder = orderChildrenRef.current[b.id]; - return aOrder - bOrder; - }); - - // This will update the navigation tree in the Chrome service (calling the serverless.setNavigation()) - onProjectNavigationChange({ navigationTree }); - }, [onProjectNavigationChange]); - - const unregister = useCallback( - (id: string) => { - const updatedItems = { ...navigationItemsRef.current }; - delete updatedItems[id]; - navigationItemsRef.current = updatedItems; - - onNavigationItemsChange(); - }, - [onNavigationItemsChange] - ); - - const register = useCallback( - (navNode, order): UnRegisterFunction => { - if (orderChildrenRef.current[navNode.id] === undefined) { - orderChildrenRef.current[navNode.id] = order ?? idx.current++; - } - - const updatedRef = { ...navigationItemsRef.current, [navNode.id]: navNode }; - navigationItemsRef.current = updatedRef; - - onNavigationItemsChange(); - - return () => unregister(navNode.id); - }, - [unregister, onNavigationItemsChange] - ); - - const contextValue = useMemo( - () => ({ - register, - unstyled, - activeNodes, - }), - [register, unstyled, activeNodes] - ); - - const childrenParsed = useMemo(() => { - let footerChildren: ReactNode; - let rootIndex = 0; - - const parseChildren = (_children: ReactNode, wrapperComponent = '') => { - const parsed: ReactNode[] = []; - Children.forEach(_children, (child, i) => { - if (!React.isValidElement(child)) { - return; - } - - const childType = getChildType(child); - if (childType === 'unknown' && unstyled === false) { - throw new Error( - `${wrapperComponent} only accepts , and as children. Received ${child.type}` - ); - } - - if (childType === 'footer') { - if (footerChildren) { - throw new Error('Only one is allowed'); - } - footerChildren = parseChildren(child.props.children, ''); - return; - } - - // We add a "rootIndex" prop to each child to keep track of the order of the children - // and correctly set the order of nodes in the navigation tree independently of when a - // node register itself (it could be after a deepLink is being activated). - parsed.push({ ...child, props: { ...child.props, rootIndex } }); - rootIndex += 1; - }); - - return parsed; - }; - - const bodyChildren: ReactNode[] = parseChildren(children); - - return { body: bodyChildren, footer: footerChildren }; - }, [children, unstyled]); - - return ( - - - - {childrenParsed.body} - - - - ); -} - -export function useNavigation() { - const context = useContext(NavigationContext); - if (!context) { - throw new Error('useNavigation must be used within a Navigation provider'); - } - return context; -} - -Navigation.Group = NavigationGroup; -Navigation.Item = NavigationItem; -Navigation.Footer = NavigationFooter; -Navigation.RecentlyAccessed = RecentlyAccessed; diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_bucket.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_bucket.tsx deleted file mode 100644 index 907d155cbd061..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_bucket.tsx +++ /dev/null @@ -1,69 +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 React, { useCallback } from 'react'; -import type { AppDeepLinkId, NodeDefinition } from '@kbn/core-chrome-browser'; - -import { getNavigationNodeId } from '../../utils'; -import { getPresets } from '../nav_tree_presets'; -import { Navigation } from './navigation'; -import type { NavigationGroupPreset } from '../types'; - -const navTreePresets = getPresets('all'); - -export interface Props< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> { - preset?: NavigationGroupPreset; - nodeDefinition?: NodeDefinition; - defaultIsCollapsed?: boolean; -} - -export function NavigationBucket< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id ->({ nodeDefinition: _nodeDefinition, defaultIsCollapsed, preset }: Props) { - const nodeDefinition = preset - ? (navTreePresets[preset] as NodeDefinition) - : _nodeDefinition; - - if (!nodeDefinition) { - throw new Error('Either preset or nodeDefinition must be defined'); - } - - const renderItems = useCallback( - (items: Array>, isRoot = false) => { - return items.map((item) => { - const id = getNavigationNodeId(item); - - return ( - - {item.children ? ( - - {renderItems(item.children)} - - ) : ( - - )} - - ); - }); - }, - [defaultIsCollapsed] - ); - - return <>{renderItems([nodeDefinition], true)}; -} diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_footer.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_footer.tsx deleted file mode 100644 index 083e8e66ee55a..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_footer.tsx +++ /dev/null @@ -1,19 +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 { type FC } from 'react'; - -export interface Props { - children?: JSX.Element[]; -} - -// Note: this component is only used to detect which children are part of the body and which -// are part of the footer. See the "childrenParsed" value of the component. -export const NavigationFooter: FC = () => { - return null; -}; diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_group.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_group.tsx deleted file mode 100644 index 11beb966963a1..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_group.tsx +++ /dev/null @@ -1,190 +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 React, { useMemo, Children, ReactNode, useEffect, useRef } from 'react'; -import useObservable from 'react-use/lib/useObservable'; -import deepEqual from 'react-fast-compare'; -import type { - AppDeepLinkId, - ChromeProjectNavigationNode, - ChromeNavLink, -} from '@kbn/core-chrome-browser'; - -import { useNavigation as useNavigationServices } from '../../services'; -import type { NodeProps } from '../types'; -import { NavigationSectionUI } from './navigation_section_ui'; -import { useNavigation } from './navigation'; -import { NavigationBucket, type Props as NavigationBucketProps } from './navigation_bucket'; -import { generateUniqueNodeId, getChildType } from '../../utils'; -import { initNavNode } from '../../navnode_utils'; -import { CloudLinks } from '../../cloud_links'; - -/** - * Handler to convert the JSX children of the NavigationGroup to the ChromeProjectNavigationNode - * interface. We do that by parsing the children with the React.Children func, read their prop - * and initiate the node objects. - */ -const jsxChildrenToNavigationNode = ( - { - parentNodePath, - jsxChildren, - rootIndex, - treeDepth, - }: { parentNodePath: string; jsxChildren?: ReactNode; rootIndex: number; treeDepth: number }, - { cloudLinks, deepLinks }: { cloudLinks: CloudLinks; deepLinks: Record } -): ChromeProjectNavigationNode[] | undefined => { - if (!jsxChildren) return undefined; - - const navigationNodes: ChromeProjectNavigationNode[] = []; - - Children.forEach(jsxChildren, (child, index) => { - if (!React.isValidElement(child)) { - return; - } - const title = - typeof child.props.children === 'string' ? child.props.children : child.props.title; - const childNode = initNavNode( - { ...child.props, title, rootIndex, treeDepth, index, parentNodePath }, - { cloudLinks, deepLinks } - ); - - if (!childNode) return; - - const childType = getChildType(child); - - if (childType !== 'group') { - if (childType === 'item') { - if (child.props.children && typeof child.props.children !== 'string') { - // Render the node item - childNode.renderItem = () => child.props.children; - } - navigationNodes.push(childNode); - } else { - // This is a custom JSX node, render it "as is" in the nav. - navigationNodes.push({ - id: generateUniqueNodeId(), - title: '', - path: '', - renderItem: () => child, - }); - } - return; - } - - if (child.props?.children) { - navigationNodes.push({ - ...childNode, - // Recursively add all the children of the group - children: jsxChildrenToNavigationNode( - { - parentNodePath: childNode.path, - jsxChildren: child.props.children, - rootIndex, - treeDepth: treeDepth + 1, - }, - { cloudLinks, deepLinks } - ), - }); - return; - } - - navigationNodes.push(childNode); - }); - - return navigationNodes.length > 0 ? navigationNodes : undefined; -}; - -export interface Props< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> extends NodeProps { - unstyled?: boolean; -} - -function NavigationGroupInternalComp< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id ->(props: Props) { - const { cloudLinks, deepLinks$ } = useNavigationServices(); - const { register } = useNavigation(); - const deepLinks = useObservable(deepLinks$, {}); - const { rootIndex = 0 } = props; - - const navNodeRef = useRef(); - const childrenNodesRef = useRef(); - - const navNode = useMemo(() => { - const _navNode = initNavNode(props, { cloudLinks, deepLinks }); - - if (!_navNode) return null; - - const childrenNodes = jsxChildrenToNavigationNode( - { parentNodePath: _navNode.path, jsxChildren: props.children, rootIndex, treeDepth: 1 }, - { cloudLinks, deepLinks } - ); - - const childrenChanged = deepEqual(childrenNodes, childrenNodesRef.current) === false; - if (childrenChanged) { - childrenNodesRef.current = childrenNodes; - } - - const nextValue = { - ..._navNode, - children: childrenNodesRef.current, - }; - - const hasChanged = deepEqual(nextValue, navNodeRef.current) === false; - if (hasChanged) { - navNodeRef.current = nextValue; - } - - if (navNodeRef.current === undefined) { - // Adding this check for TS purpose, it should never be undefined. - throw new Error('Navnode ref is undefined.'); - } - - return navNodeRef.current; - }, [props, cloudLinks, deepLinks, rootIndex]); - - /** Register when mounting and whenever the internal nav node changes */ - useEffect(() => { - if (navNode) { - return register(navNode, rootIndex); - } - return undefined; - }, [register, navNode, rootIndex]); - - if (!navNode || navNode.sideNavStatus === 'hidden') { - return null; - } - - return ; -} - -function NavigationGroupComp< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id ->(props: Props & NavigationBucketProps) { - if (props.preset) { - return ( - - ); - } - - const { preset, nodeDefinition, ...rest } = props; - return ; -} - -export const NavigationGroup = React.memo(NavigationGroupComp) as typeof NavigationGroupComp; diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_item.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_item.tsx deleted file mode 100644 index 068f12d7ccd95..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_item.tsx +++ /dev/null @@ -1,130 +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 React, { Fragment, useEffect, useMemo, useRef } from 'react'; -import type { AppDeepLinkId, ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; -import { EuiCollapsibleNavItem } from '@elastic/eui'; -import classNames from 'classnames'; -import deepEqual from 'react-fast-compare'; -import useObservable from 'react-use/lib/useObservable'; - -import { useNavigation as useNavigationServices } from '../../services'; -import type { NodeProps } from '../types'; -import { useNavigation } from './navigation'; -import { isActiveFromUrl } from '../../utils'; -import { initNavNode } from '../../navnode_utils'; - -export interface Props< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> extends NodeProps { - unstyled?: boolean; -} - -function NavigationItemComp< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id ->(props: Props) { - const { cloudLinks, navigateToUrl, deepLinks$ } = useNavigationServices(); - const { unstyled: unstyledFromContext, register, activeNodes } = useNavigation(); - const deepLinks = useObservable(deepLinks$, {}); - const navNodeRef = useRef(); - const { rootIndex, appendHorizontalRule } = props; - - const { children, node } = useMemo(() => { - const { children: _children, ...rest } = props; - - if (typeof _children === 'string') { - rest.title = rest.title ?? _children; - } - - return { - children: _children, - node: rest, - }; - }, [props]); - const unstyled = props.unstyled ?? unstyledFromContext; - - const navNode = useMemo(() => { - const _navNode = initNavNode(node, { cloudLinks, deepLinks }); - if (!_navNode) return null; - - const hasChanged = deepEqual(_navNode, navNodeRef.current) === false; - if (hasChanged) { - navNodeRef.current = _navNode; - } - - if (navNodeRef.current === undefined) { - // Adding this check for TS purpose, it should never be undefined. - throw new Error('Navnode ref is undefined.'); - } - - return navNodeRef.current; - }, [node, cloudLinks, deepLinks]); - - if (navNode && appendHorizontalRule) { - throw new Error( - `[Chrome navigation] Error in node [${navNode.id}]. "appendHorizontalRule" can only be added for group with children.` - ); - } - - useEffect(() => { - if (navNode) { - return register(navNode, rootIndex); - } - return undefined; - }, [register, navNode, rootIndex]); - - if (!navNode) { - return null; - } - - if (unstyled) { - if (children) { - if (typeof children === 'function') { - return children(navNode); - } - return <>{children}; - } - - return {navNode.title}; - } - - const isActive = isActiveFromUrl(navNode.path, activeNodes); - - const { href } = navNode; - const dataTestSubj = classNames(`nav-item`, { - [`nav-item-deepLinkId-${navNode.deepLink?.id}`]: !!navNode.deepLink, - [`nav-item-isActive`]: isActive, - }); - - return ( - { - e.preventDefault(); - e.stopPropagation(); - if (href) { - navigateToUrl(href); - } - }, - }} - /> - ); -} - -export const NavigationItem = React.memo(NavigationItemComp) as typeof NavigationItemComp; diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_item_open_panel.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_item_open_panel.tsx index 8e4475a979a06..57fc3ec74b884 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_item_open_panel.tsx +++ b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_item_open_panel.tsx @@ -22,10 +22,10 @@ import { useIsWithinMinBreakpoint, } from '@elastic/eui'; import type { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; -import type { NavigateToUrlFn } from '../../../types/internal'; import { useNavigation as useServices } from '../../services'; -import { usePanel } from './panel'; import { isActiveFromUrl } from '../../utils'; +import type { NavigateToUrlFn } from '../../types'; +import { usePanel } from './panel'; const getStyles = (euiTheme: EuiThemeComputed<{}>) => css` * { diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx index afd4c65d0f576..b16afb2778631 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx +++ b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_section_ui.tsx @@ -21,10 +21,10 @@ import type { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; import classnames from 'classnames'; import type { EuiThemeSize, RenderAs } from '@kbn/core-chrome-browser/src/project_navigation'; -import type { NavigateToUrlFn } from '../../../types/internal'; import { useNavigation as useServices } from '../../services'; -import { useNavigation } from './navigation'; import { isAbsoluteLink, isActiveFromUrl } from '../../utils'; +import type { NavigateToUrlFn } from '../../types'; +import { useNavigation } from '../navigation'; import { PanelContext, usePanel } from './panel'; import { NavigationItemOpenPanel } from './navigation_item_open_panel'; diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_ui.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/navigation_ui.tsx deleted file mode 100644 index 60424c1f4d03d..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/ui/components/navigation_ui.tsx +++ /dev/null @@ -1,41 +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 { EuiCollapsibleNavBeta } from '@elastic/eui'; -import React, { FC } from 'react'; - -import { NavigationPanel } from './panel'; - -interface Props { - unstyled?: boolean; - footerChildren?: React.ReactNode; - dataTestSubj?: string; -} - -export const NavigationUI: FC = ({ children, unstyled, footerChildren, dataTestSubj }) => { - return ( - <> - {unstyled ? ( - <>{children} - ) : ( - <> - {/* Main navigation content */} - - {children} - - {footerChildren && ( - {footerChildren} - )} - - {/* Right side panel navigation */} - - - )} - - ); -}; diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/panel/default_content.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/panel/default_content.tsx index e3a45c7602257..8d99a5f6716a5 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/components/panel/default_content.tsx +++ b/packages/shared-ux/chrome/navigation/src/ui/components/panel/default_content.tsx @@ -10,11 +10,18 @@ import { EuiFlexGroup, EuiFlexItem, EuiTitle } from '@elastic/eui'; import { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; import React, { Fragment, type FC } from 'react'; -import { isGroupNode, isItemNode } from '../../../utils'; import { PanelGroup } from './panel_group'; import { PanelNavItem } from './panel_nav_item'; import type { PanelNavNode } from './types'; +function isGroupNode({ children }: Pick) { + return children !== undefined; +} + +function isItemNode({ children }: Pick) { + return children === undefined; +} + /** * All the children of a panel must be wrapped into groups. This is because a group in DOM is represented by
    tags * inside the which then renders the items in
  • insid the component. diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/panel/panel_nav_item_label.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/panel/panel_nav_item_label.tsx index 591150d1e3596..4f68cb807d7e1 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/components/panel/panel_nav_item_label.tsx +++ b/packages/shared-ux/chrome/navigation/src/ui/components/panel/panel_nav_item_label.tsx @@ -7,17 +7,16 @@ */ import React from 'react'; -import { EuiIcon } from '@elastic/eui'; import type { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; import { LabelBadge } from './label_badge'; export const NavItemLabel: React.FC<{ item: ChromeProjectNavigationNode; -}> = ({ item: { title, openInNewTab, withBadge, badgeOptions } }) => { +}> = ({ item: { title, withBadge, badgeOptions } }) => { return ( <> - {title} {openInNewTab && } + {title} {withBadge && } ); diff --git a/packages/shared-ux/chrome/navigation/src/ui/components/recently_accessed.tsx b/packages/shared-ux/chrome/navigation/src/ui/components/recently_accessed.tsx index 501695e5ae6a7..0a3af6522a6e6 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/components/recently_accessed.tsx +++ b/packages/shared-ux/chrome/navigation/src/ui/components/recently_accessed.tsx @@ -6,12 +6,12 @@ * Side Public License, v 1. */ -import { EuiCollapsibleNavItem } from '@elastic/eui'; import React, { FC } from 'react'; +import { EuiCollapsibleNavItem } from '@elastic/eui'; import useObservable from 'react-use/lib/useObservable'; +import type { ChromeRecentlyAccessedHistoryItem } from '@kbn/core-chrome-browser'; import type { Observable } from 'rxjs'; -import { RecentItem } from '../../../types/internal'; import { useNavigation as useServices } from '../../services'; import { getI18nStrings } from '../i18n_strings'; @@ -21,7 +21,7 @@ export interface Props { * Optional observable for recently accessed items. If not provided, the * recently items from the Chrome service will be used. */ - recentlyAccessed$?: Observable; + recentlyAccessed$?: Observable; /** * If true, the recently accessed list will be collapsed by default. * @default false diff --git a/packages/shared-ux/chrome/navigation/src/ui/default_navigation.tsx b/packages/shared-ux/chrome/navigation/src/ui/default_navigation.tsx deleted file mode 100644 index e7d20a812d58f..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/ui/default_navigation.tsx +++ /dev/null @@ -1,176 +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 React, { FC, useCallback, useMemo } from 'react'; -import { i18n } from '@kbn/i18n'; -import type { NodeDefinition } from '@kbn/core-chrome-browser'; - -import { Navigation } from './components'; -import type { - GroupDefinition, - PresetDefinition, - NavigationTreeDefinition, - ProjectNavigationDefinition, - ProjectNavigationTreeDefinition, - RootNavigationItemDefinition, - RecentlyAccessedDefinition, -} from './types'; -import { RecentlyAccessed } from './components/recently_accessed'; -import { NavigationFooter } from './components/navigation_footer'; -import { getPresets } from './nav_tree_presets'; -import type { ContentProvider } from './components/panel'; - -const isPresetDefinition = ( - item: RootNavigationItemDefinition | NodeDefinition -): item is PresetDefinition => { - return (item as PresetDefinition).preset !== undefined; -}; - -const isGroupDefinition = ( - item: RootNavigationItemDefinition | NodeDefinition -): item is GroupDefinition => { - return ( - (item as GroupDefinition).type === 'navGroup' || (item as NodeDefinition).children !== undefined - ); -}; - -const isRecentlyAccessedDefinition = ( - item: RootNavigationItemDefinition | NodeDefinition -): item is RecentlyAccessedDefinition => { - return (item as RootNavigationItemDefinition).type === 'recentlyAccessed'; -}; - -/** - * Handler to build a full navigation tree definition from a project definition - * It adds all the defaults and presets (recently accessed, footer content...) - * - * @param projectDefinition The project definition - * @returns The full navigation tree definition - */ -const getDefaultNavigationTree = ( - projectDefinition: ProjectNavigationTreeDefinition -): NavigationTreeDefinition => { - return { - body: [ - { - type: 'recentlyAccessed', - }, - ...projectDefinition.map((def) => { - if ((def as GroupDefinition).children) { - return { children: [], ...def, type: 'navGroup' as const }; - } else { - return { ...def, type: 'navItem' as const }; - } - }), - { - type: 'navGroup', - ...getPresets('analytics'), - }, - { - type: 'navGroup', - ...getPresets('ml'), - }, - ], - footer: [ - { - type: 'navItem', - id: 'devTools', - title: i18n.translate('sharedUXPackages.chrome.sideNavigation.devTools', { - defaultMessage: 'Developer tools', - }), - link: 'dev_tools', - icon: 'editorCodeBlock', - }, - { - type: 'navGroup', - id: 'project_settings_project_nav', - title: i18n.translate('sharedUXPackages.chrome.sideNavigation.projectSettings', { - defaultMessage: 'Project settings', - }), - icon: 'gear', - breadcrumbStatus: 'hidden', - children: [ - { - link: 'management', - title: i18n.translate('sharedUXPackages.chrome.sideNavigation.mngt', { - defaultMessage: 'Management', - }), - }, - { - id: 'cloudLinkUserAndRoles', - cloudLink: 'userAndRoles', - }, - { - id: 'cloudLinkBilling', - cloudLink: 'billingAndSub', - }, - ], - }, - ], - }; -}; - -interface Props { - dataTestSubj?: string; - panelContentProvider?: ContentProvider; -} - -const DefaultNavigationComp: FC = ({ - projectNavigationTree, - navigationTree, - dataTestSubj, - panelContentProvider, -}) => { - if (!navigationTree && !projectNavigationTree) { - throw new Error('One of navigationTree or projectNavigationTree must be defined'); - } - - const renderNodes = useCallback( - (nodes: Array = []) => { - return nodes.map((navNode, i) => { - if (isPresetDefinition(navNode)) { - return ; - } - - if (isRecentlyAccessedDefinition(navNode)) { - return ; - } - - if (isGroupDefinition(navNode)) { - // Recursively build the tree - return ( - - {renderNodes(navNode.children)} - - ); - } - - return ; - }); - }, - [] - ); - - const definitionToJSX = useMemo(() => { - const definition = !navigationTree - ? getDefaultNavigationTree(projectNavigationTree!) - : navigationTree; - - const { body, footer } = definition; - return { body: renderNodes(body), footer: Boolean(footer) ? renderNodes(footer) : null }; - }, [navigationTree, projectNavigationTree, renderNodes]); - - return ( - - {definitionToJSX.body} - {definitionToJSX.footer && {definitionToJSX.footer}} - - ); -}; - -export const DefaultNavigation = React.memo(DefaultNavigationComp) as typeof DefaultNavigationComp; diff --git a/packages/shared-ux/chrome/navigation/src/ui/index.ts b/packages/shared-ux/chrome/navigation/src/ui/index.ts index 2e94b144161dd..6135842173e4c 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/index.ts +++ b/packages/shared-ux/chrome/navigation/src/ui/index.ts @@ -6,20 +6,9 @@ * Side Public License, v 1. */ -export { Navigation } from './components'; -export type { PanelContent, PanelComponentProps, PanelContentProvider } from './components'; - -export { DefaultNavigation } from './default_navigation'; +export { Navigation } from './navigation'; +export type { Props as NavigationProps } from './navigation'; -export { getPresets } from './nav_tree_presets'; +export { RecentlyAccessed } from './components'; -export type { - GroupDefinition, - PresetDefinition, - ItemDefinition, - NavigationGroupPreset, - NavigationTreeDefinition, - ProjectNavigationDefinition, - RecentlyAccessedDefinition, - RootNavigationItemDefinition, -} from './types'; +export type { PanelContent, PanelComponentProps, PanelContentProvider } from './components'; diff --git a/packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts b/packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts deleted file mode 100644 index 8c4637781dbfd..0000000000000 --- a/packages/shared-ux/chrome/navigation/src/ui/nav_tree_presets.ts +++ /dev/null @@ -1,69 +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 { cloneDeep } from 'lodash'; - -import { - defaultNavigation as analytics, - type AnalyticsNodeDefinition, -} from '@kbn/default-nav-analytics'; -import { defaultNavigation as ml, type MlNodeDefinition } from '@kbn/default-nav-ml'; -import { - defaultNavigation as devtools, - type DevToolsNodeDefinition, -} from '@kbn/default-nav-devtools'; -import { - defaultNavigation as management, - type ManagementNodeDefinition, -} from '@kbn/default-nav-management'; - -import type { NavigationGroupPreset } from './types'; - -export function getPresets(preset: 'devtools'): DevToolsNodeDefinition; -export function getPresets(preset: 'management'): ManagementNodeDefinition; -export function getPresets(preset: 'ml'): MlNodeDefinition; -export function getPresets(preset: 'analytics'): AnalyticsNodeDefinition; -export function getPresets(preset: 'all'): { - analytics: AnalyticsNodeDefinition; - devtools: DevToolsNodeDefinition; - ml: MlNodeDefinition; - management: ManagementNodeDefinition; -}; -export function getPresets(preset: NavigationGroupPreset | 'all'): - | DevToolsNodeDefinition - | ManagementNodeDefinition - | MlNodeDefinition - | AnalyticsNodeDefinition - | { - analytics: AnalyticsNodeDefinition; - devtools: DevToolsNodeDefinition; - ml: MlNodeDefinition; - management: ManagementNodeDefinition; - } { - if (preset === 'all') { - return { - analytics: cloneDeep(analytics), - devtools: cloneDeep(devtools), - ml: cloneDeep(ml), - management: cloneDeep(management), - }; - } - - switch (preset) { - case 'analytics': - return cloneDeep(analytics); - case 'devtools': - return cloneDeep(devtools); - case 'ml': - return cloneDeep(ml); - case 'management': - return cloneDeep(management); - default: - throw new Error(`Unknown preset: ${preset}`); - } -} diff --git a/packages/shared-ux/chrome/navigation/src/ui/navigation.stories.tsx b/packages/shared-ux/chrome/navigation/src/ui/navigation.stories.tsx index def69d3c9df52..dfd656603f683 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/navigation.stories.tsx +++ b/packages/shared-ux/chrome/navigation/src/ui/navigation.stories.tsx @@ -6,7 +6,6 @@ * Side Public License, v 1. */ -import { action } from '@storybook/addon-actions'; import { ComponentMeta } from '@storybook/react'; import React, { EventHandler, FC, MouseEvent, useState, useEffect } from 'react'; import { of } from 'rxjs'; @@ -17,20 +16,16 @@ import { EuiCollapsibleNavBetaProps, EuiHeader, EuiHeaderSection, - EuiLink, EuiPageTemplate, EuiText, } from '@elastic/eui'; -import type { ChromeNavLink } from '@kbn/core-chrome-browser'; -import { NavigationStorybookMock, navLinksMock } from '../../mocks'; +import type { NavigationTreeDefinitionUI } from '@kbn/core-chrome-browser'; +import { NavigationStorybookMock } from '../../mocks'; import mdx from '../../README.mdx'; -import type { NavigationServices } from '../../types'; +import type { NavigationServices } from '../types'; import { NavigationProvider } from '../services'; -import { Navigation } from './components'; -import { DefaultNavigation } from './default_navigation'; -import { getPresets } from './nav_tree_presets'; -import type { ProjectNavigationDefinition } from './types'; +import { Navigation } from './navigation'; import { ContentProvider } from './components/panel'; const storybookMock = new NavigationStorybookMock(); @@ -92,88 +87,144 @@ const NavigationWrapper: FC> = (prop ); }; -const baseDeeplink: ChromeNavLink = { - id: 'foo', - title: 'Title from deep link', - href: 'https://elastic.co', - url: '/dashboard-mocked', - baseUrl: '', -}; - -const createDeepLink = (id: string, title: string = baseDeeplink.title) => { - return { - ...baseDeeplink, - id, - title, - }; -}; - -const deepLinks: ChromeNavLink[] = [ - createDeepLink('item1'), - createDeepLink('item2', 'Foo'), - createDeepLink('item3'), - createDeepLink('group1:item1'), - createDeepLink('group1:groupA:groupI:item1'), - createDeepLink('group1:groupA', 'Group title from deep link'), - createDeepLink('group2', 'Group title from deep link'), - createDeepLink('group2:item1'), - createDeepLink('group2:item3'), - createDeepLink('group:settings.logs'), - createDeepLink('group:settings.signals'), - createDeepLink('group:settings.tracing'), -]; - -const deepLinks$ = of({ - ...[...navLinksMock, ...deepLinks].reduce>((acc, navLink) => { - acc[navLink.id] = navLink; - return acc; - }, {}), -}); - -const simpleNavigationDefinition: ProjectNavigationDefinition = { - projectNavigationTree: [ +const groupExamplesNavigationTree: NavigationTreeDefinitionUI = { + body: [ + // My custom project { id: 'example_projet', title: 'Example project', icon: 'logoObservability', defaultIsCollapsed: false, + path: 'example_projet', children: [ { - link: 'item1', - title: 'Get started', - }, - { - link: 'item2', - title: 'Alerts', - }, - { - link: 'item3', - title: 'Dashboards', - }, - { - id: 'item4', - title: 'External link', - href: 'https://elastic.co', + id: 'blockGroup', + path: 'example_projet.blockGroup', + title: 'Block group', + children: [ + { + id: 'item1', + title: 'Item 1', + href: '/app/kibana', + path: 'group1.item1', + }, + { + id: 'item2', + title: 'Item 2', + href: '/app/kibana', + path: 'group1.item2', + }, + { + id: 'item3', + + title: 'Item 3', + href: '/app/kibana', + path: 'group1.item3', + }, + ], }, { - link: 'item5', - title: 'Another link', + id: 'accordionGroup', + path: 'example_projet.accordionGroup', + title: 'Accordion group', + renderAs: 'accordion', + children: [ + { + id: 'item1', + title: 'Item 1', + href: '/app/kibana', + path: 'group1.item1', + }, + { + id: 'item2', + title: 'Item 2', + href: '/app/kibana', + path: 'group1.item1', + }, + { + id: 'item3', + title: 'Item 3', + href: '/app/kibana', + path: 'group1.item1', + }, + ], }, { - id: 'group:settings', - title: 'Settings', + id: 'groupWithouTitle', + path: 'example_projet.groupWithouTitle', + title: '', children: [ { - link: 'item1', - title: 'Logs', + id: 'item1', + title: 'Block group', + href: '/app/kibana', + path: 'group1.item1', }, { - link: 'item2', - title: 'Signals', + id: 'item2', + title: 'without', + href: '/app/kibana', + path: 'group1.item1', }, { - link: 'item3', - title: 'Tracing', + id: 'item3', + title: 'title', + href: '/app/kibana', + path: 'group1.item1', + }, + ], + }, + { + id: 'panelGroup', + href: '/app/kibana', + title: 'Panel group', + path: 'example_projet.panelGroup', + renderAs: 'panelOpener', + children: [ + { + id: 'group1', + title: 'Group 1', + path: 'panelGroup.group1', + children: [ + { + id: 'logs', + href: '/app/kibana', + path: 'group1.item1', + title: 'Logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'group1.item1', + }, + { + id: 'signals-2', + title: 'Signals - should NOT appear', + href: '/app/kibana', + path: 'group1.item1', + sideNavStatus: 'hidden', // Should not appear + }, + { + id: 'tracing', + title: 'Tracing', + href: '/app/kibana', + path: 'group1.item1', + }, + ], + }, + { + id: 'group2', + title: 'Group 2', + path: 'panelGroup.group2', + children: [ + { + id: 'item1', + path: 'panelGroup.group2.item1', + href: '/app/kibana', + title: 'Some link title', + }, + ], }, ], }, @@ -182,161 +233,9 @@ const simpleNavigationDefinition: ProjectNavigationDefinition = { ], }; -export const SimpleObjectDefinition = (args: NavigationServices) => { - const services = storybookMock.getServices({ - ...args, - deepLinks$, - onProjectNavigationChange: (updated) => { - action('Update chrome navigation')(JSON.stringify(updated, null, 2)); - }, - recentlyAccessed$: of([ - { label: 'This is an example', link: '/app/example/39859', id: '39850' }, - { label: 'Another example', link: '/app/example/5235', id: '5235' }, - ]), - }); - - return ( - - - - - - ); -}; - -const groupExamplesDefinition: ProjectNavigationDefinition = { - navigationTree: { - body: [ - // My custom project - { - type: 'navGroup', - id: 'example_projet', - title: 'Example project', - icon: 'logoObservability', - defaultIsCollapsed: false, - children: [ - { - title: 'Block group', - children: [ - { - id: 'item1', - link: 'item1', - title: 'Item 1', - }, - { - id: 'item2', - link: 'item1', - title: 'Item 2', - }, - { - id: 'item3', - link: 'item1', - title: 'Item 3', - }, - ], - }, - { - title: 'Accordion group', - renderAs: 'accordion', - children: [ - { - id: 'item1', - link: 'item1', - title: 'Item 1', - }, - { - id: 'item2', - link: 'item1', - title: 'Item 2', - }, - { - id: 'item3', - link: 'item1', - title: 'Item 3', - }, - ], - }, - { - children: [ - { - id: 'item1', - link: 'item1', - title: 'Block group', - }, - { - id: 'item2', - link: 'item1', - title: 'without', - }, - { - id: 'item3', - link: 'item1', - title: 'title', - }, - ], - }, - { - id: 'group:settings', - link: 'item1', - title: 'Panel group', - renderAs: 'panelOpener', - children: [ - { - title: 'Group 1', - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - { - id: 'group:settings.signals-2', - link: 'group:settings.signals', - title: 'Signals - should NOT appear', - sideNavStatus: 'hidden', // Should not appear - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - { - id: 'group.nestedGroup', - link: 'group:settings.tracing', - title: 'Group 2', - children: [ - { - id: 'item1', - link: 'group:settings.signals', - title: 'Some link title', - }, - ], - }, - ], - }, - ], - }, - ], - footer: [ - { - type: 'navGroup', - ...getPresets('devtools'), - }, - ], - }, -}; - export const GroupsExamples = (args: NavigationServices) => { const services = storybookMock.getServices({ ...args, - deepLinks$, - onProjectNavigationChange: (updated) => { - action('Update chrome navigation')(JSON.stringify(updated, null, 2)); - }, recentlyAccessed$: of([ { label: 'This is an example', link: '/app/example/39859', id: '39850' }, { label: 'Another example', link: '/app/example/5235', id: '5235' }, @@ -347,246 +246,281 @@ export const GroupsExamples = (args: NavigationServices) => { {({ isCollapsed }) => ( - + )} ); }; -const navigationDefinition: ProjectNavigationDefinition = { - navigationTree: { - body: [ - // My custom project - { - type: 'navGroup', - id: 'example_projet', - title: 'Example project', - icon: 'logoObservability', - defaultIsCollapsed: false, - children: [ - { - link: 'item1', - title: 'Get started', - }, - { - title: 'Group 1', - children: [ - { - id: 'item1', - link: 'item1', - title: 'Item 1', - }, - { - id: 'item2', - link: 'item1', - title: 'Item 2', - }, - { - id: 'item3', - link: 'item1', - title: 'Item 3', - }, - ], - }, - { - link: 'item2', - title: 'Alerts', - }, - { - id: 'item2-2', - link: 'item2', - title: 'Item should NOT appear!!', - sideNavStatus: 'hidden', // Should not appear - }, - { - link: 'item3', - title: 'Some other node', - }, - { - id: 'group:settings-2', - title: 'Settings as nav Item', - link: 'item1', - renderAs: 'item', // Render just like any other item, even if it has children - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - { - id: 'group:settings.signals2', - link: 'group:settings.signals', - title: 'Signals - should NOT appear', - sideNavStatus: 'hidden', // Should not appear - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - { - id: 'group:settings', - link: 'item1', - title: 'Settings as panel opener', - renderAs: 'panelOpener', - children: [ - { - title: 'Group 1', - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - { - id: 'group:settings.signals-2', - link: 'group:settings.signals', - title: 'Signals - should NOT appear', - sideNavStatus: 'hidden', // Should not appear - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - { - children: [ - { - id: 'group.nestedGroup', - link: 'group:settings.tracing', - title: 'Group 2', - renderAs: 'item', - children: [ - { - id: 'item1', - link: 'group:settings.signals', - title: 'Hidden - should NOT appear', - sideNavStatus: 'hidden', // Should not appear - }, - ], - }, - ], - }, - { - children: [ - { - id: 'group.nestedGroup', - link: 'group:settings.tracing', - title: 'Just an item in a group', - }, - ], - }, - ], - }, - { - id: 'group:settings.hidden', - title: 'Settings 1 - should NOT appear', // sideNavStatus is 'hidden' - sideNavStatus: 'hidden', - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - ], - }, - { - id: 'group:settings.childrenHidden', - link: 'item1', - title: 'Settings 2 - should NOT appear', // All children are hidden - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - sideNavStatus: 'hidden', - }, - ], - }, - ], - }, - // Add ml - { - type: 'preset', - preset: 'ml', - }, - { - type: 'navItem', - title: 'Custom link at root level', - }, - { - type: 'navGroup', - id: 'test_all_hidden', - title: 'Test group render as Item', - renderAs: 'item', - link: 'item1', - children: [ - { - id: 'test.item1', - link: 'item1', - }, - ], - }, - { - type: 'navItem', - icon: 'logoElastic', - link: 'ml', - title: 'Link at root level + icon', - }, - // And specific links from analytics - { - type: 'navGroup', - ...getPresets('analytics'), - title: 'My analytics', // Change the title - children: getPresets('analytics').children.map((child) => ({ - ...child, - children: child.children?.filter((item) => { - // Hide discover and dashboard - return item.link !== 'discover' && item.link !== 'dashboards'; - }), - })), - }, - ], - footer: [ - { - type: 'recentlyAccessed', - defaultIsCollapsed: true, - // Override the default recently accessed items with our own - recentlyAccessed$: of([ - { - label: 'My own recent item', - id: '1234', - link: '/app/example/39859', - }, - { - label: 'I also own this', - id: '4567', - link: '/app/example/39859', - }, - ]), - }, - { - type: 'navGroup', - ...getPresets('devtools'), - }, - ], - }, +const navigationTree: NavigationTreeDefinitionUI = { + body: [ + // My custom project + { + type: 'recentlyAccessed', + defaultIsCollapsed: true, + // Override the default recently accessed items with our own + recentlyAccessed$: of([ + { + label: 'My own recent item', + id: '1234', + link: '/app/example/39859', + }, + { + label: 'I also own this', + id: '4567', + link: '/app/example/39859', + }, + ]), + }, + { + id: 'example_projet', + title: 'Example project', + icon: 'logoObservability', + defaultIsCollapsed: false, + path: 'example_projet', + children: [ + { + id: 'item1', + href: '/app/kibana', + path: 'example_projet.item1', + title: 'Get started', + }, + { + title: 'Group 1', + id: 'group1', + path: 'example_projet.group1', + children: [ + { + id: 'item1', + title: 'Item 1', + href: '/app/kibana', + path: 'example_projet.group1.item1', + }, + { + id: 'item2', + title: 'Item 2', + href: '/app/kibana', + path: 'example_projet.group1.item1', + }, + { + id: 'item3', + title: 'Item 3', + href: '/app/kibana', + path: 'example_projet.group1.item1', + }, + ], + }, + { + id: 'item2', + title: 'Alerts', + href: '/app/kibana', + path: 'example_projet.item2', + }, + { + id: 'item2-2', + title: 'Item should NOT appear!!', + sideNavStatus: 'hidden', // Should not appear + href: '/app/kibana', + path: 'example_projet.item2-2', + }, + { + id: 'item3', + title: 'Some other node', + href: '/app/kibana', + path: 'example_projet.item3', + }, + { + id: 'group:settingsAsNavItem', + title: 'Settings as nav Item', + href: '/app/kibana', + path: 'example_projet.group:settingsAsNavItem', + renderAs: 'item', // Render just like any other item, even if it has children + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group:settingsAsNavItem.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group:settingsAsNavItem.signals', + }, + { + id: 'signalsHidden', + title: 'Signals - should NOT appear', + sideNavStatus: 'hidden', // Should not appear + href: '/app/kibana', + path: 'example_projet.group:settingsAsNavItem.signalsHidden', + }, + { + id: 'tracing', + title: 'Tracing', + href: '/app/kibana', + path: 'example_projet.group:settingsAsNavItem.tracing', + }, + ], + }, + { + id: 'group:settingsAsPanelOpener', + title: 'Settings panel opener', + path: 'example_projet.group:settingsAsPanelOpener', + renderAs: 'panelOpener', + children: [ + { + id: 'group1', + title: 'Group 1', + path: 'example_projet.group:settingsAsPanelOpener.group1', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group:settingsAsPanelOpener.group1.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group:settingsAsPanelOpener.group1.signals', + }, + { + id: 'signals-2', + title: 'Signals - should NOT appear', + sideNavStatus: 'hidden', // Should not appear + href: '/app/kibana', + path: 'example_projet.group:settingsAsPanelOpener.group1.signals', + }, + { + id: 'tracing', + title: 'Tracing', + href: '/app/kibana', + path: 'example_projet.group:settingsAsPanelOpener.group1.tracing', + }, + ], + }, + { + id: 'group2', + title: 'Group 2', + path: 'example_projet.group:settingsAsPanelOpener.group2', + children: [ + { + id: 'nestedGroup', + title: 'Nested group', + renderAs: 'item', + path: 'example_projet.group:settingsAsPanelOpener.group2.nestedGroup', + href: '/app/kibana', + children: [ + { + id: 'item1', + path: 'example_projet.group:settingsAsPanelOpener.group2.nestedGroup.item1', + title: 'Hidden - should NOT appear', + }, + ], + }, + ], + }, + { + id: 'group3', + title: '', + path: 'example_projet.group:settingsAsPanelOpener.group3', + children: [ + { + id: 'nestedGroup', + title: 'Just an item in a group', + path: 'example_projet.group:settingsAsPanelOpener.group3.nestedGroup', + href: '/app/kibana', + }, + ], + }, + ], + }, + { + id: 'group:settingsIsHidden', + title: 'Settings - should NOT appear', // sideNavStatus is 'hidden' + sideNavStatus: 'hidden', + path: 'example_projet.group:settingsIsHidden', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group:settingsIsHidden.logs', + }, + ], + }, + { + id: 'group:settingsWithChildrenHidden', + title: 'Settings - should NOT appear', // All children are hidden + path: 'example_projet.group:settingsWithChildrenHidden', + children: [ + { + id: 'logs', + title: 'Logs', + sideNavStatus: 'hidden', + href: '/app/kibana', + path: 'example_projet.group:settingsWithChildrenHidden.logs', + }, + ], + }, + ], + }, + { + id: 'linkAtRootLevel', + title: 'Custom link at root level', + href: '/app/kibana', + path: 'linkAtRootLevel', + }, + { + id: 'groupRenderAsItem', + title: 'Test group render as Item', + renderAs: 'item', + href: '/app/kibana', + path: 'groupRenderAsItem', + children: [ + { + id: 'item1', + title: 'Item 1', + href: '/app/kibana', + path: 'groupRenderAsItem.item1', + }, + ], + }, + { + id: 'linkAtRootLevelWithIcon', + icon: 'logoElastic', + title: 'Link at root level + icon', + href: '/app/kibana', + path: 'linkAtRootLevelWithIcon', + }, + ], + footer: [ + { + type: 'recentlyAccessed', + defaultIsCollapsed: true, + // Override the default recently accessed items with our own + recentlyAccessed$: of([ + { + label: 'My own recent item', + id: '1234', + link: '/app/example/39859', + }, + { + label: 'I also own this', + id: '4567', + link: '/app/example/39859', + }, + ]), + }, + ], }; export const ComplexObjectDefinition = (args: NavigationServices) => { const services = storybookMock.getServices({ ...args, - deepLinks$, - onProjectNavigationChange: (updated) => { - action('Update chrome navigation')(JSON.stringify(updated, null, 2)); - }, recentlyAccessed$: of([ { label: 'This is an example', link: '/app/example/39859', id: '39850' }, { label: 'Another example', link: '/app/example/5235', id: '5235' }, @@ -595,9 +529,11 @@ export const ComplexObjectDefinition = (args: NavigationServices) => { return ( - - - + {({ isCollapsed }) => ( + + + + )} ); }; @@ -628,468 +564,574 @@ const panelContentProvider: ContentProvider = (id: string) => { } }; -const navigationDefinitionWithPanel: ProjectNavigationDefinition = { - navigationTree: { - body: [ - // My custom project - { - type: 'navGroup', - id: 'example_projet', - title: 'Example project', - icon: 'logoObservability', - defaultIsCollapsed: false, - isCollapsible: false, - children: [ - { - link: 'item1', - title: 'Get started', - }, - { - link: 'item2', - title: 'Alerts', - }, - { - // Panel with default content - // Groups with title - id: 'group:openpanel1', - title: 'Open panel (1)', - renderAs: 'panelOpener', - link: 'item1', - children: [ - { - title: 'Group 1', - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - icon: 'logoObservability', - }, - { - link: 'group:settings.signals', - title: 'Signals', - openInNewTab: true, - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - withBadge: true, // Default to "Beta" badge - }, - ], - }, - { - title: 'Group 2', - children: [ - { - id: 'group2:settings.logs', - link: 'group:settings.logs', - title: 'Logs', - }, - { - id: 'group2:settings.signals', - link: 'group:settings.signals', - title: 'Signals', - }, - { - id: 'group2:settings.tracing', - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - ], - }, - { - // Panel with default content - // Groups with **not** title - id: 'group.openpanel2', - title: 'Open panel (2)', - renderAs: 'panelOpener', - link: 'item1', - children: [ - { - appendHorizontalRule: true, // Add a separator after the group - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - withBadge: true, // Default to "Beta" badge - }, - ], - }, - { - id: 'group2', - children: [ - { - id: 'group2:settings.logs', - link: 'group:settings.logs', - title: 'Logs', - }, - { - id: 'group2:settings.signals', - link: 'group:settings.signals', - title: 'Signals', - }, - { - id: 'group2:settings.tracing', - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - ], - }, - { - // Panel with default content - // Accordion to wrap groups - id: 'group.openpanel3', - title: 'Open panel (3)', - renderAs: 'panelOpener', - link: 'item1', - children: [ - { - id: 'group1', - appendHorizontalRule: true, - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - withBadge: true, // Default to "Beta" badge - }, - ], - }, - // Groups with accordion - { - id: 'group2', - title: 'MANAGEMENT', - renderAs: 'accordion', - children: [ - { - id: 'group2-A', - title: 'Group 1', - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - withBadge: true, // Default to "Beta" badge - }, - ], - }, - { - id: 'group2-B', - title: 'Group 2 (marked as collapsible)', - renderAs: 'accordion', - children: [ - { - id: 'group2:settings.logs', - link: 'group:settings.logs', - title: 'Logs', - }, - { - id: 'group2:settings.signals', - link: 'group:settings.signals', - title: 'Signals', - }, - { - id: 'group2:settings.tracing', - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - { - id: 'group2-C', - title: 'Group 3', - children: [ - { - id: 'group2:settings.logs', - link: 'group:settings.logs', - title: 'Logs', - }, - { - id: 'group2:settings.signals', - link: 'group:settings.signals', - title: 'Signals', - }, - { - id: 'group2:settings.tracing', - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - ], - }, - ], - }, - { - // Panel with nav group title that acts like nav items - id: 'group.openpanel4', - title: 'Open panel (4) - sideNavStatus', - renderAs: 'panelOpener', - link: 'item1', - children: [ - { - id: 'root', - children: [ - { - title: 'Group renders as "item" (1)', - link: 'item1', - renderAs: 'item', - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - ], - }, - { - link: 'group:settings.logs', - title: 'Item 2', - }, - { - link: 'group:settings.logs2', - title: 'Item should NOT appear!', // Should not appear - sideNavStatus: 'hidden', - }, - { - title: 'Group should NOT appear!', - id: 'group:settings.logs3', - link: 'group:settings.logs', - sideNavStatus: 'hidden', // This group should not appear - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - ], - }, - { - title: 'Group renders as "item" (2)', - id: 'group2.renderAsItem', - link: 'item1', - renderAs: 'item', - children: [ - { - id: 'group2:settings.logs', - link: 'group:settings.logs', - title: 'Logs', - sideNavStatus: 'hidden', - }, - { - id: 'group2:settings.signals', - link: 'group:settings.signals', - title: 'Signals', - sideNavStatus: 'hidden', - }, - { - id: 'group2:settings.tracing', - link: 'group:settings.tracing', - title: 'Tracing', - sideNavStatus: 'hidden', - }, - ], - }, - ], - }, - // Groups with accordion - { - id: 'group2', - title: 'MANAGEMENT', - renderAs: 'accordion', - children: [ - { - id: 'group2-A', - title: 'Group 1', - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - withBadge: true, // Default to "Beta" badge - }, - ], - }, - { - id: 'root-groupB', - children: [ - { - id: 'group2-B', - link: 'item1', - title: 'Group renders as "item" (3)', - renderAs: 'item', // This group renders as a normal item - children: [ - { - id: 'group2:settings.logs', - link: 'group:settings.logs', - title: 'Logs', - }, - { - id: 'group2:settings.signals', - link: 'group:settings.signals', - title: 'Signals', - }, - { - id: 'group2:settings.tracing', - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - ], - }, - { - id: 'group2-C', - title: 'Group 3', - children: [ - { - id: 'group2:settings.logs', - link: 'group:settings.logs', - title: 'Logs', - }, - { - title: 'Yet another group as item', - link: 'item1', - renderAs: 'item', - children: [ - { - id: 'group2:settings.logs', - link: 'group:settings.logs', - title: 'Logs', - }, - { - id: 'group2:settings.signals', - link: 'group:settings.signals', - title: 'Signals', - }, - ], - }, - { - id: 'group2:settings.signals', - link: 'group:settings.signals', - title: 'Signals', - }, - ], - }, - ], - }, - ], - }, - { - // Panel where all children are hidden. The "open panel" icon should NOT - // appear next to the node title - id: 'group.openpanel5', - title: 'Open panel (5) - all children hidden', - renderAs: 'panelOpener', - link: 'item1', - children: [ - { - link: 'test1', - sideNavStatus: 'hidden', - }, - { - title: 'Some group', - children: [ - { - link: 'item1', - title: 'My first group item', - sideNavStatus: 'hidden', - }, - ], - }, - ], - }, - { - id: 'group.openpanel6', - title: 'Open panel (custom content)', - renderAs: 'panelOpener', - link: 'item1', - children: [ - { - link: 'group:settings.logs', - title: 'Logs', - }, - { - link: 'group:settings.signals', - title: 'Signals', - }, - { - link: 'group:settings.tracing', - title: 'Tracing', - }, - ], - }, - { - id: 'group.openpanel7', - title: 'Open panel (custom title)', - renderAs: 'panelOpener', - link: 'item1', - children: [ - { - link: 'group:settings.logs', - title: 'Those links', - }, - { - link: 'group:settings.signals', - title: 'are automatically', - }, - { - link: 'group:settings.tracing', - title: 'generated', - }, - ], - }, - ], - }, - ], - }, +const navigationTreeWithPanels: NavigationTreeDefinitionUI = { + body: [ + // My custom project + { + id: 'example_projet', + title: 'Example project', + icon: 'logoObservability', + defaultIsCollapsed: false, + isCollapsible: false, + path: 'example_projet', + children: [ + { + id: 'item1', + href: '/app/kibana', + path: 'example_projet.item1', + title: 'Get started', + }, + { + id: 'item2', + href: '/app/kibana', + path: 'example_projet.item2', + title: 'Alerts', + }, + { + // Panel with default content + // Groups with title + id: 'group:openpanel1', + title: 'Open panel (1)', + renderAs: 'panelOpener', + href: '/app/kibana', + path: 'example_projet.group:openpanel1', + children: [ + { + id: 'group1', + title: 'Group 1', + path: 'example_projet.group:openpanel1.group1', + children: [ + { + id: 'item1', + href: '/app/kibana', + path: 'example_projet.group:openpanel1.group1.item1', + title: 'Logs', + icon: 'logoObservability', + }, + { + id: 'item2', + href: '/app/kibana', + path: 'example_projet.group:openpanel1.group1.item2', + title: 'Signals xxxxxx', + openInNewTab: true, + }, + { + id: 'item3', + href: '/app/kibana', + path: 'example_projet.group:openpanel1.group1.item3', + title: 'Tracing', + withBadge: true, // Default to "Beta" badge + }, + ], + }, + { + id: 'group2', + path: 'example_projet.group:openpanel1.group2', + title: 'Group 2', + children: [ + { + id: 'group2:settings.logs', + href: '/app/kibana', + path: 'example_projet.group:openpanel1.group2.group2:settings.logs', + title: 'Logs', + }, + { + id: 'group2:settings.signals', + href: '/app/kibana', + path: 'example_projet.group:openpanel1.group2.group2:settings.signals', + title: 'Signals', + }, + { + id: 'group2:settings.tracing', + href: '/app/kibana', + path: 'example_projet.group:openpanel1.group2.group2:settings.tracing', + title: 'Tracing', + }, + ], + }, + ], + }, + { + // Panel with default content + // Groups with **not** title + id: 'group.openpanel2', + title: 'Open panel (2)', + renderAs: 'panelOpener', + path: 'example_projet.group.openpanel2', + children: [ + { + id: 'group1', + path: 'example_projet.group.openpanel2.group1', + title: '', + appendHorizontalRule: true, // Add a separator after the group + children: [ + { + id: 'logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel2.group1.logs', + title: 'Logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel2.group1.signals', + }, + { + id: 'tracing', + title: 'Tracing', + href: '/app/kibana', + path: 'example_projet.group.openpanel2.group1.tracing', + withBadge: true, // Default to "Beta" badge + }, + ], + }, + { + id: 'group2', + path: 'example_projet.group.openpanel2.group2', + title: '', + children: [ + { + id: 'logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel2.group2.logs', + title: 'Logs', + }, + { + id: 'signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel2.group2.signals', + title: 'Signals', + }, + { + id: 'tracing', + href: '/app/kibana', + path: 'example_projet.group.openpanel2.group2.tracing', + title: 'Tracing', + }, + ], + }, + ], + }, + { + // Panel with default content + // Accordion to wrap groups + id: 'group.openpanel3', + title: 'Open panel (3)', + renderAs: 'panelOpener', + path: 'example_projet.group.openpanel3', + children: [ + { + id: 'group1', + title: '', + path: 'example_projet.group.openpanel3.group1', + appendHorizontalRule: true, + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group1.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group1.signals', + }, + { + id: 'tracing', + title: 'Tracing', + withBadge: true, // Default to "Beta" badge + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group1.tracing', + }, + ], + }, + // Groups with accordion + { + id: 'group2', + title: 'MANAGEMENT', + renderAs: 'accordion', + path: 'example_projet.group.openpanel3.group2', + children: [ + { + id: 'group2-A', + title: 'Group 1', + path: 'example_projet.group.openpanel3.group2.group2-A', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-A.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-A.signals', + }, + { + id: 'tracing', + title: 'Tracing', + withBadge: true, // Default to "Beta" badge + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-A.tracing', + }, + ], + }, + { + id: 'group2-B', + title: 'Group 2 (marked as collapsible)', + renderAs: 'accordion', + path: 'example_projet.group.openpanel3.group2.group2-B', + children: [ + { + id: 'logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-B.logs', + title: 'Logs', + }, + { + id: 'signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-B.signals', + title: 'Signals', + }, + { + id: 'tracing', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-B.tracing', + title: 'Tracing', + }, + ], + }, + { + id: 'group2-C', + title: 'Group 3', + path: 'example_projet.group.openpanel3.group2.group2-C', + children: [ + { + id: 'logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-C.logs', + title: 'Logs', + }, + { + id: 'signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-C.signals', + title: 'Signals', + }, + { + id: 'tracing', + href: '/app/kibana', + path: 'example_projet.group.openpanel3.group2.group2-C.tracing', + title: 'Tracing', + }, + ], + }, + ], + }, + ], + }, + { + // Panel with nav group title that acts like nav items + id: 'group.openpanel4', + title: 'Open panel (4) - sideNavStatus', + renderAs: 'panelOpener', + path: 'example_projet.group.openpanel4', + children: [ + { + id: 'root', + path: 'example_projet.group.openpanel4.root', + title: '', + children: [ + { + id: 'groupAsItem1', + title: 'Group renders as "item" (1)', + renderAs: 'item', + path: 'example_projet.group.openpanel4.root.groupAsItem1', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.groupAsItem1.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.groupAsItem1.signals', + }, + ], + }, + { + id: 'logs', + title: 'Item 2', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.logs', + }, + { + id: 'logs2', + title: 'Item should NOT appear!', // Should not appear + sideNavStatus: 'hidden', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.logs2', + }, + { + title: 'Group should NOT appear!', + id: 'logs3', + sideNavStatus: 'hidden', // This group should not appear + path: 'example_projet.group.openpanel4.root.logs3', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.logs3.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.logs3.signals', + }, + ], + }, + { + title: 'Group renders as "item" (2)', + id: 'group2.renderAsItem', + renderAs: 'item', + path: 'example_projet.group.openpanel4.root.group2.renderAsItem', + children: [ + { + id: 'logs', + title: 'Logs', + sideNavStatus: 'hidden', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.group2.renderAsItem.logs', + }, + { + id: 'signals', + title: 'Signals', + sideNavStatus: 'hidden', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.group2.renderAsItem.signals', + }, + { + id: 'tracing', + title: 'Tracing', + sideNavStatus: 'hidden', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.root.group2.renderAsItem.tracing', + }, + ], + }, + ], + }, + // Groups with accordion + { + id: 'group2', + title: 'MANAGEMENT', + renderAs: 'accordion', + path: 'example_projet.group.openpanel4.group2', + children: [ + { + id: 'group2-A', + title: 'Group 1', + path: 'example_projet.group.openpanel4.group2.group2-A', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.group2-A.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.group2-A.signals', + }, + { + id: 'tracing', + title: 'Tracing', + withBadge: true, // Default to "Beta" badge + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.group2-A.tracing', + }, + ], + }, + { + id: 'root-groupB', + path: 'example_projet.group.openpanel4.group2.root-groupB', + title: '', + children: [ + { + id: 'group2-B', + title: 'Group renders as "item" (3)', + renderAs: 'item', // This group renders as a normal item + path: 'example_projet.group.openpanel4.group2.root-groupB.group2-B', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.root-groupB.group2-B.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.root-groupB.group2-B.signals', + }, + { + id: 'tracing', + title: 'Tracing', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.root-groupB.group2-B.tracing', + }, + ], + }, + ], + }, + { + id: 'group2-C', + title: 'Group 3', + path: 'example_projet.group.openpanel4.group2.group2-C', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.group2-C.logs', + }, + { + id: 'groupAsItem', + title: 'Yet another group as item', + renderAs: 'item', + path: 'example_projet.group.openpanel4.group2.group2-C.groupAsItem', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.group2-C.groupAsItem.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.group2-C.groupAsItem.signals', + }, + ], + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel4.group2.group2-C.signals', + }, + ], + }, + ], + }, + ], + }, + { + // Panel where all children are hidden. The "open panel" icon should NOT + // appear next to the node title + id: 'group.openpanel5', + title: 'Open panel (5) - all children hidden', + renderAs: 'panelOpener', + path: 'example_projet.group.openpanel5', + children: [ + { + id: 'test1', + title: 'Test 1', + sideNavStatus: 'hidden', + href: '/app/kibana', + path: 'example_projet.group.openpanel5.test1', + }, + { + id: 'test2', + title: 'Some group', + path: '', + children: [ + { + id: 'item1', + title: 'My first group item', + sideNavStatus: 'hidden', + href: '/app/kibana', + path: 'example_projet.group.openpanel5.test2.item1', + }, + ], + }, + ], + }, + { + id: 'group.openpanel6', + title: 'Open panel (custom content)', + renderAs: 'panelOpener', + path: 'example_projet.group.openpanel6', + children: [ + { + id: 'logs', + title: 'Logs', + href: '/app/kibana', + path: 'example_projet.group.openpanel6.logs', + }, + { + id: 'signals', + title: 'Signals', + href: '/app/kibana', + path: 'example_projet.group.openpanel6.signals', + }, + { + id: 'tracing', + title: 'Tracing', + href: '/app/kibana', + path: 'example_projet.group.openpanel6.tracing', + }, + ], + }, + { + id: 'group.openpanel7', + title: 'Open panel (custom title)', + renderAs: 'panelOpener', + path: 'example_projet.group.openpanel7', + children: [ + { + id: 'logs', + title: 'Those links', + href: '/app/kibana', + path: 'example_projet.group.openpanel7.logs', + }, + { + id: 'signals', + title: 'are automatically', + href: '/app/kibana', + path: 'example_projet.group.openpanel7.signals', + }, + { + id: 'tracing', + title: 'generated', + href: '/app/kibana', + path: 'example_projet.group.openpanel7.tracing', + }, + ], + }, + ], + }, + ], }; export const ObjectDefinitionWithPanel = (args: NavigationServices) => { const services = storybookMock.getServices({ ...args, - deepLinks$, - onProjectNavigationChange: (updated) => { - action('Update chrome navigation')(JSON.stringify(updated, null, 2)); - }, recentlyAccessed$: of([ { label: 'This is an example', link: '/app/example/39859', id: '39850' }, { label: 'Another example', link: '/app/example/5235', id: '5235' }, @@ -1100,8 +1142,8 @@ export const ObjectDefinitionWithPanel = (args: NavigationServices) => { {({ isCollapsed }) => ( - @@ -1110,237 +1152,6 @@ export const ObjectDefinitionWithPanel = (args: NavigationServices) => { ); }; -export const WithUIComponentsTiny = (args: NavigationServices) => { - const services = storybookMock.getServices({ - ...args, - deepLinks$, - onProjectNavigationChange: (updated) => { - action('Update chrome navigation')(JSON.stringify(updated, null, 2)); - }, - recentlyAccessed$: of([ - { label: 'This is an example', link: '/app/example/39859', id: '39850' }, - { label: 'Another example', link: '/app/example/5235', id: '5235' }, - ]), - }); - - return ( - - {({ isCollapsed }) => ( - - - - - id="item1" link="item1" /> - - - id="item2" link="item1" title="YEAH!!" icon="launch" /> - - - - - - - - - - - - - - - )} - - ); -}; - -export const WithUIComponents = (args: NavigationServices) => { - const services = storybookMock.getServices({ - ...args, - deepLinks$, - onProjectNavigationChange: (updated) => { - action('Update chrome navigation')(JSON.stringify(updated, null, 2)); - }, - recentlyAccessed$: of([ - { label: 'This is an example', link: '/app/example/39859', id: '39850' }, - { label: 'Another example', link: '/app/example/5235', id: '5235' }, - ]), - }); - - return ( - - {({ isCollapsed }) => ( - - - - - - id="item1" link="item1" /> - {/* - {(navNode) => { - return ( -
    - {`Render prop: ${navNode.id} - ${navNode.title}`} -
    - ); - }} -
    */} - -
    - Title in ReactNode -
    -
    - - - id="group:block" title="This is a block group"> - - link="group:settings.logs" title="Logs" /> - link="group:settings.signals" title="Signals" withBadge /> - link="group:settings.tracing" title="Tracing" /> - - - link="group:settings.logs" title="Logs" /> - link="group:settings.signals" title="Signals" /> - link="group:settings.tracing" title="Tracing" /> - -
    - - - id="group:openPanel" - link="item1" - title="Open panel" - renderAs="panelOpener" - > - - link="group:settings.logs" title="Logs" /> - link="group:settings.signals" title="Signals" withBadge /> - link="group:settings.tracing" title="Tracing" /> - - - link="group:settings.logs" title="Logs" /> - link="group:settings.signals" title="Signals" /> - link="group:settings.tracing" title="Tracing" /> - - - - link="group:settings.logs" title="Logs" /> - - link="group:settings.signals" - title="Signals" - withBadge - badgeOptions={{ text: 'coolio' }} - /> - link="group:settings.tracing" title="Tracing" /> - - - link="group:settings.logs" title="Logs" /> - link="group:settings.signals" title="Signals" /> - link="group:settings.tracing" title="Tracing" /> - - - link="group:settings.logs" title="Logs" /> - link="group:settings.signals" title="Signals" /> - link="group:settings.tracing" title="Tracing" /> - - -
    - - - - - - - - - - - - - - - - - )} - - ); -}; - -export const MinimalUI = (args: NavigationServices) => { - const services = storybookMock.getServices({ - ...args, - deepLinks$, - onProjectNavigationChange: (updated) => { - action('Update chrome navigation')(JSON.stringify(updated, null, 2)); - }, - recentlyAccessed$: of([ - { label: 'This is an example', link: '/app/example/39859', id: '39850' }, - { label: 'Another example', link: '/app/example/5235', id: '5235' }, - ]), - }); - - return ( - - - - - - - - - - - - Some children node - - - - - - - - - - - - - - - - - - ); -}; - export default { title: 'Chrome/Navigation', description: 'Navigation container to render items for cross-app linking', @@ -1349,5 +1160,5 @@ export default { page: mdx, }, }, - component: WithUIComponents, -} as ComponentMeta; + component: ComplexObjectDefinition, +} as ComponentMeta; diff --git a/packages/shared-ux/chrome/navigation/src/ui/navigation.tsx b/packages/shared-ux/chrome/navigation/src/ui/navigation.tsx new file mode 100644 index 0000000000000..b452bc4987005 --- /dev/null +++ b/packages/shared-ux/chrome/navigation/src/ui/navigation.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, { createContext, FC, useCallback, useContext, useMemo } from 'react'; +import useObservable from 'react-use/lib/useObservable'; +import type { + ChromeProjectNavigationNode, + RootNavigationItemDefinition, + RecentlyAccessedDefinition, + NavigationTreeDefinitionUI, +} from '@kbn/core-chrome-browser'; +import type { Observable } from 'rxjs'; +import { EuiCollapsibleNavBeta } from '@elastic/eui'; +import { + RecentlyAccessed, + NavigationPanel, + PanelProvider, + type PanelContentProvider, +} from './components'; +import { useNavigation as useNavigationService } from '../services'; +import { NavigationSectionUI } from './components/navigation_section_ui'; + +const isRecentlyAccessedDefinition = ( + item: ChromeProjectNavigationNode | RecentlyAccessedDefinition +): item is RecentlyAccessedDefinition => { + return (item as RootNavigationItemDefinition).type === 'recentlyAccessed'; +}; + +interface Context { + activeNodes: ChromeProjectNavigationNode[][]; +} + +const NavigationContext = createContext({ + activeNodes: [], +}); + +export interface Props { + navigationTree$: Observable; + dataTestSubj?: string; + panelContentProvider?: PanelContentProvider; +} + +const NavigationComp: FC = ({ navigationTree$, dataTestSubj, panelContentProvider }) => { + const { activeNodes$ } = useNavigationService(); + + const activeNodes = useObservable(activeNodes$, []); + const navigationTree = useObservable(navigationTree$, { body: [] }); + + const contextValue = useMemo( + () => ({ + activeNodes, + }), + [activeNodes] + ); + + const renderNodes = useCallback( + (nodes: Array = []) => { + return nodes.map((navNode, i) => { + if (!navNode) return null; + + if (isRecentlyAccessedDefinition(navNode)) { + return ; + } + + if (navNode.sideNavStatus === 'hidden') { + return null; + } + + return ; + }); + }, + [] + ); + + return ( + + + {/* Main navigation content */} + + {renderNodes(navigationTree.body)} + + + {/* Footer */} + {navigationTree.footer && ( + + {renderNodes(navigationTree.footer)} + + )} + + {/* Right side panel navigation */} + + + + ); +}; + +export const Navigation = React.memo(NavigationComp) as typeof NavigationComp; + +export function useNavigation() { + const context = useContext(NavigationContext); + if (!context) { + throw new Error('useNavigation must be used within a Navigation provider'); + } + return context; +} diff --git a/packages/shared-ux/chrome/navigation/src/ui/types.ts b/packages/shared-ux/chrome/navigation/src/ui/types.ts index 768155ced3050..10b1b7630b20c 100644 --- a/packages/shared-ux/chrome/navigation/src/ui/types.ts +++ b/packages/shared-ux/chrome/navigation/src/ui/types.ts @@ -5,7 +5,6 @@ * in compliance with, at your election, the Elastic License 2.0 or the Server * Side Public License, v 1. */ - import type { ReactNode } from 'react'; import type { @@ -13,7 +12,6 @@ import type { ChromeProjectNavigationNode, NodeDefinition, } from '@kbn/core-chrome-browser'; -import type { RecentlyAccessedProps } from './components'; /** * @public @@ -41,130 +39,6 @@ export interface NodeProps< index?: number; } -/** The preset that can be pass to the NavigationBucket component */ -export type NavigationGroupPreset = 'analytics' | 'devtools' | 'ml' | 'management'; - -/** - * @public - * - * Definition for the "Recently accessed" section of the side navigation. - */ -export interface RecentlyAccessedDefinition extends RecentlyAccessedProps { - type: 'recentlyAccessed'; -} - -/** - * @public - * - * A group root item definition. - */ -export interface GroupDefinition< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> extends Omit, 'children'> { - type: 'navGroup'; - children: Array>; -} - -/** - * @public - * - * A group root item definition built from a specific preset. - */ -export interface PresetDefinition< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> extends Omit, 'children' | 'type'> { - type: 'preset'; - preset: NavigationGroupPreset; -} - -/** - * @public - * - * An item root. - */ -export interface ItemDefinition< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> extends Omit, 'children'> { - type: 'navItem'; -} - -/** - * @public - * - * The navigation definition for a root item in the side navigation. - */ -export type RootNavigationItemDefinition< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> = - | RecentlyAccessedDefinition - | GroupDefinition - | PresetDefinition - | ItemDefinition; - -export type ProjectNavigationTreeDefinition< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> = Array< - | Omit, 'type'> - | Omit, 'type'> ->; - -/** - * @public - * - * Definition for the complete navigation tree, including body and footer - */ -export interface NavigationTreeDefinition< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> { - /** - * Main content of the navigation. Can contain any number of "cloudLink", "recentlyAccessed" - * or "group" items. Be mindeful though, with great power comes great responsibility. - * */ - body?: Array>; - /** - * Footer content of the navigation. Can contain any number of "cloudLink", "recentlyAccessed" - * or "group" items. Be mindeful though, with great power comes great responsibility. - * */ - footer?: Array>; -} - -/** - * @public - * - * A project navigation definition that can be passed to the `` component - * or when calling `setNavigation()` on the serverless plugin. - */ -export interface ProjectNavigationDefinition< - LinkId extends AppDeepLinkId = AppDeepLinkId, - Id extends string = string, - ChildrenId extends string = Id -> { - /** - * A navigation tree structure with object items containing labels, links, and sub-items - * for a project. Use it if you only need to configure your project navigation and leave - * all the other navigation items to the default (Recently viewed items, Management, etc.) - */ - projectNavigationTree?: ProjectNavigationTreeDefinition; - /** - * A navigation tree structure with object items containing labels, links, and sub-items - * that defines a complete side navigation. This configuration overrides `projectNavigationTree` - * if both are provided. - */ - navigationTree?: NavigationTreeDefinition; -} - /** * @internal * diff --git a/packages/shared-ux/chrome/navigation/src/utils.ts b/packages/shared-ux/chrome/navigation/src/utils.ts index efbf3c0e2a42e..aa783235a6842 100644 --- a/packages/shared-ux/chrome/navigation/src/utils.ts +++ b/packages/shared-ux/chrome/navigation/src/utils.ts @@ -6,47 +6,12 @@ * Side Public License, v 1. */ -import React, { type ReactNode } from 'react'; -import type { ChromeProjectNavigationNode, NodeDefinition } from '@kbn/core-chrome-browser'; -import { NavigationFooter } from './ui/components/navigation_footer'; -import { NavigationGroup } from './ui/components/navigation_group'; -import { NavigationItem } from './ui/components/navigation_item'; -import { RecentlyAccessed } from './ui/components/recently_accessed'; - -let uniqueId = 0; - -export function generateUniqueNodeId() { - const id = `node${uniqueId++}`; - return id; -} +import type { ChromeProjectNavigationNode } from '@kbn/core-chrome-browser'; export function isAbsoluteLink(link: string) { return link.startsWith('http://') || link.startsWith('https://'); } -export function isGroupNode({ children }: Pick) { - return children !== undefined; -} - -export function isItemNode({ children }: Pick) { - return children === undefined; -} - -export function getNavigationNodeId( - { id: _id, link }: Pick, - idGenerator = generateUniqueNodeId -): string { - const id = _id ?? link; - return id ?? idGenerator(); -} - -export function getNavigationNodeHref({ - href, - deepLink, -}: Pick): string | undefined { - return deepLink?.url ?? href; -} - function isSamePath(pathA: string | null, pathB: string | null) { if (pathA === null || pathB === null) { return false; @@ -59,24 +24,3 @@ export function isActiveFromUrl(nodePath: string, activeNodes: ChromeProjectNavi return acc === true ? acc : nodesBranch.some((branch) => isSamePath(branch.path, nodePath)); }, false); } - -type ChildType = 'item' | 'group' | 'recentlyAccessed' | 'footer' | 'unknown'; - -export const getChildType = (child: ReactNode): ChildType => { - if (!React.isValidElement(child)) { - return 'unknown'; - } - - switch (child.type) { - case NavigationItem: - return 'item'; - case NavigationGroup: - return 'group'; - case RecentlyAccessed: - return 'recentlyAccessed'; - case NavigationFooter: - return 'footer'; - default: - return 'unknown'; - } -}; diff --git a/packages/shared-ux/chrome/navigation/tsconfig.json b/packages/shared-ux/chrome/navigation/tsconfig.json index b3b9b636ff0a7..d123d451597e6 100644 --- a/packages/shared-ux/chrome/navigation/tsconfig.json +++ b/packages/shared-ux/chrome/navigation/tsconfig.json @@ -20,13 +20,8 @@ "@kbn/core-chrome-browser", "@kbn/core-application-browser", "@kbn/i18n", - "@kbn/default-nav-analytics", - "@kbn/default-nav-ml", - "@kbn/default-nav-management", - "@kbn/default-nav-devtools", "@kbn/shared-ux-storybook-mock", "@kbn/core-http-browser", - "@kbn/cloud-plugin", ], "exclude": [ "target/**/*" diff --git a/packages/shared-ux/chrome/navigation/types/index.ts b/packages/shared-ux/chrome/navigation/types/index.ts deleted file mode 100644 index 43ff4083ba414..0000000000000 --- a/packages/shared-ux/chrome/navigation/types/index.ts +++ /dev/null @@ -1,64 +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 type { Observable } from 'rxjs'; -import type { CloudStart } from '@kbn/cloud-plugin/public'; - -import type { - ChromeNavLink, - ChromeProjectNavigation, - ChromeProjectNavigationNode, -} from '@kbn/core-chrome-browser'; -import type { BasePathService, NavigateToUrlFn, RecentItem } from './internal'; -import type { CloudLinks } from '../src/cloud_links'; - -/** - * A list of services that are consumed by this component. - * @public - */ -export interface NavigationServices { - basePath: BasePathService; - recentlyAccessed$: Observable; - deepLinks$: Observable>>; - navIsOpen: boolean; - navigateToUrl: NavigateToUrlFn; - onProjectNavigationChange: (chromeProjectNavigation: ChromeProjectNavigation) => void; - activeNodes$: Observable; - cloudLinks: CloudLinks; - isSideNavCollapsed: boolean; -} - -/** - * An interface containing a collection of Kibana dependencies required to - * render this component - * @public - */ -export interface NavigationKibanaDependencies { - core: { - application: { navigateToUrl: NavigateToUrlFn }; - chrome: { - recentlyAccessed: { get$: () => Observable }; - navLinks: { - getNavLinks$: () => Observable>; - }; - getIsSideNavCollapsed$: () => Observable; - }; - http: { - basePath: BasePathService; - getLoadingCount$(): Observable; - }; - }; - serverless: { - setNavigation: ( - projectNavigation: ChromeProjectNavigation, - navigationTreeFlattened?: Record - ) => void; - getActiveNavigationNodes$: () => Observable; - }; - cloud: CloudStart; -} diff --git a/packages/shared-ux/chrome/navigation/types/internal.ts b/packages/shared-ux/chrome/navigation/types/internal.ts deleted file mode 100644 index 6808c391073a9..0000000000000 --- a/packages/shared-ux/chrome/navigation/types/internal.ts +++ /dev/null @@ -1,28 +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 type { ApplicationStart } from '@kbn/core-application-browser'; -import type { IBasePath } from '@kbn/core-http-browser'; - -/** - * @internal - */ -export type SetActiveNavItemIdFn = (activeNavItemId: string) => void; - -/** - * @internal - */ -export interface RecentItem { - link: string; - label: string; - id: string; -} - -export type NavigateToUrlFn = ApplicationStart['navigateToUrl']; - -export type BasePathService = Pick; diff --git a/packages/shared-ux/chrome/serverless_project_navigation.mdx b/packages/shared-ux/chrome/serverless_project_navigation.mdx index cbb049d25b60d..786c0052c654d 100644 --- a/packages/shared-ux/chrome/serverless_project_navigation.mdx +++ b/packages/shared-ux/chrome/serverless_project_navigation.mdx @@ -19,8 +19,6 @@ Welcome to the serverless project navigation documentation. Our tools help teams - [`NavigationTreeDefinition`](#navigationtreedefinition) - [`GroupDefinition`](#groupdefinition) - [`RecentlyAccessedDefinition`](#recentlyaccesseddefinition) - - [React components](#react-components) - - [`unstyled`](#unstyled) - [Important concepts](#important-concepts) - [Deep links](#deep-links) - [Cloud link](#cloud-links) @@ -50,27 +48,8 @@ In the following sections, we will explore each of these building blocks in deta The left side navigation is a primary way for users to navigate through different sections of the project. It consists of a tree of navigation items that can be expanded/collapsed or opened in a side panel. Apart from the navigation tree it also supports special pre-built blocks like recently accessed items. The main part of the navigation tree is project's navigation: this is fully configured and supported by the project teams (e.g. Observability). We also provide pre-configured platform sections as presets that solutions can use as part of their navigation (e.g. `ml`, `analytics`). Solutions can customize those sections to their needs. -There are two approaches to building the side navigation: - -1. **Navigation tree definition**: Developers provide a navigation tree definition. ~~This approach is recommended if the use case works with the existing building blocks.~~ :warning: We are planing in deprecating this approach, use the React components instead. - -2. **React components**: Alternatively, we provide a set of pre-built components that can be used to construct the left side navigation. These components include: - -``: The parent component that encapsulates the entire navigation area. -``: A component representing a group of navigation items. -``: A component representing an individual navigation item. -``: A component for displaying additional content at the bottom of the navigation. -``: A component for displaying a list of recently accessed items. - -By leveraging these components, you can create a customized left side navigation for a serverless project. - -> **Note** -> Both approaches have an identical set of properties that can be passed. Some of those properties will be documented in the tree definition section below. - ### Navigation Tree Definition -:warning: **Soon to be deprecated** :warning: - Use the React components instead. - Use the `NavigationTreeDefinition` interface to create your left side navigation using a tree definition. This interface allows you to define the complete navigation tree, including the **body** and **footer** of the navigation. #### Example @@ -127,8 +106,8 @@ const navigationTree: NavigationTreeDefinition = { ], }, { - type: 'navGroup', - ...getPresets('ml'), // Insert all the machine learning links, learn more in #preconfigured-navigation-presets section + type: 'preset', + preset: 'ml', // Insert all the machine learning links, learn more in #preconfigured-navigation-presets section }, ], footer: [ @@ -165,33 +144,25 @@ const navigationTree: NavigationTreeDefinition = { Once the navigation tree is defined we need to -1. Pass it to the `` component -2. Set your navigation component in the `serverless` plugin +1. Convert it to an `Observable` +2. Initiate the navigation in the `serverless` plugin ```tsx -import { DefaultNavigation, NavigationKibanaProvider } from '@kbn/shared-ux-chrome-navigation'; - -const createServerlessSearchSideNavComponent = - ( - core: CoreStart, - { serverless, cloud }: { serverless: ServerlessPluginStart; cloud: CloudStart } - ) => - () => { - return ( - - - - ); - }; +import { of } from 'rxjs'; // plugin.ts (public) "start()" -serverless.setSideNavComponent(createComponent(core, { serverless, cloud })); +const navigationTree$ = of(navigationTree); + +serverless.initNavigation(navigationTree$, /* optional */ { + // Optional: pass a test subject for the navigation + dataTestSubj: 'myNavigation' +}); ``` #### Navigation tree API > **Warning** -> The API reference is manually maintained and might be out of date. Please refer [to the source](https://github.com/elastic/kibana/blob/2c4f8b76c520f2ffd0516a29601c03db9b09d221/packages/shared-ux/chrome/navigation/src/ui/types.ts#L83-L124) for the most up-to-date information, until we have automated the API reference. +> The API reference is manually maintained and might be out of date. Please refer [to the source](https://github.com/elastic/kibana/blob/main/packages/core/chrome/core-chrome-browser/src/project_navigation.ts) for the most up-to-date information, until we have automated the API reference. ##### `NavigationTreeDefinition` @@ -323,100 +294,10 @@ const panelContentProvider: PanelContentProvider = (id: string) => { // All other nodes content ids that haven't match will be auto-generated }; -// 2. Pass it to the or components -// -------------------------------------------------------------------- +// 2. Provide it when initiating the navigation +// ----------------------------------------- - - - {...} - -; - -// or using -; -``` - -### React components - -If you need other navigation sections in your navigation you will need to use our React components. They have the same properties as seen above except the `unstyled` prop that we will detail below. - -```tsx -import { NavigationKibanaProvider, Navigation } from '@kbn/shared-ux-chrome-navigation'; - -const createServerlessSearchSideNavComponent = - ( - core: CoreStart, - { serverless, cloud }: { serverless: ServerlessPluginStart; cloud: CloudStart } - ) => - () => { - return ( - - - - - - - - -
    -

    Any other section you might need

    -
    - - - - Title can also be a React node - - - - - - - - - -
    -
    - ); - }; -``` - -And as with the tree definition above you will have to set the navigation component on the `serverless` plugin. - -```ts -// plugin.ts (public) "start()" -serverless.setSideNavComponent(createComponent(core, { serverless, cloud })); -``` - -#### `unstyled` - -If you want to have a completely customized UI, without the Shared UX components, but also want the benefits of self-updating breadcrumbs (see the [#breadcrumbs](#breadcrumbs) section), just declare your navigation tree and pass the `unstyled` property to your ``. - -```tsx -/** - * This JSX will correctly declare your tree structure but will not have any UI applied. - Tree generated: -[{ - id: 'my-group', - title: "My Group, - children: [{ - id: 'item-1', - title: 'Item 1', - }, { - id: 'item-2', - title: 'Item 2', - }] -}] - */ - - - -
    Your custom UI
    -
    - -
    Your custom UI
    -
    -
    -
    +serverless.initNavigation(navigationTree$, { panelContentProvider }); ``` ### Important Concepts @@ -473,8 +354,8 @@ import { type NavigationTreeDefinition, getPresets } from '@kbn/shared-ux-chrome const navigationTree: NavigationTreeDefinition = { body: [ { - type: 'navGroup', - ...getPresets('ml'), // Insert all the machine learning links + type: 'preset', + preset: 'ml', // Insert all the machine learning links }, ], }; @@ -482,31 +363,6 @@ const navigationTree: NavigationTreeDefinition = { The benefit of using the preset instead of building the platform sections manually is that the team who owns the platform area can update the preset as they see fit. -You can also customize the preset like so: - -```ts -import type { NodeDefinition } from '@kbn/core-chrome-browser'; -import { type NavigationTreeDefinition, getPresets } from '@kbn/shared-ux-chrome-navigation'; - -const navigationTree: NavigationTreeDefinition = { - body: [ - { - type: 'navGroup', - // And specific links from analytics - ...getPresets('analytics'), - title: 'My analytics', // Change the title - children: getPresets('analytics').children.map((child) => ({ - ...child, - children: child.children?.filter((item) => { - // force remove discover and dashboard - return item.link !== 'discover' && item.link !== 'dashboards'; - }), - })) as NonEmptyArray, - }, - ], -}; -``` - #### Active Navigation Path Active navigation path is automatically tracked by the side navigation component. The active path is determined by the current URL and the deep links registered by apps. The active path is used to highlight the active navigation items and to determine the breadcrumbs. @@ -531,12 +387,6 @@ const navigationTree: NavigationTreeDefinition = { Technically, multiple paths can be active simultaneously and multiple nodes can be highlighted in the side navigation. However, this is not recommended as it can be confusing for the user. -You can programmatically access the active paths using the `getActiveNavigationNodes$` method: - -```ts -const activesNodes$ = pluginsStart.serverless.getActiveNavigationNodes$(); -``` - ## Breadcrumbs Breadcrumbs is a list of links that represent the current navigation path. Project navigation breadcrumbs are automatically generated based on the navigation tree set for the [side navigation](#left-side-navigation) and the currently active navigation path. @@ -566,12 +416,22 @@ Most of the applications are already setting the complete breadcrumb path for st For example, consider the navigation tree: -```tsx - - - - - +```ts +const navigationTree: NavigationTreeDefinition = { + body: [ + { + type: 'navGroup', + id: 'aiops', + title: 'AI Ops', + children: [ + { + link: 'ml:anomalyexplorer', + title: 'Anomaly Explorer', + }, + ], + }, + ], +}; ``` When on `ml:anomalyexplorer` page, the project navigation breadcrumbs will be: diff --git a/packages/shared-ux/code_editor/code_editor.test.helpers.tsx b/packages/shared-ux/code_editor/code_editor.test.helpers.tsx deleted file mode 100644 index c1d6150ca0787..0000000000000 --- a/packages/shared-ux/code_editor/code_editor.test.helpers.tsx +++ /dev/null @@ -1,121 +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 React, { useEffect, KeyboardEventHandler } from 'react'; -import { monaco } from '@kbn/monaco'; - -function createEditorInstance() { - const keyDownListeners: Array<(e?: unknown) => void> = []; - const didShowListeners: Array<(e?: unknown) => void> = []; - const didHideListeners: Array<(e?: unknown) => void> = []; - let placeholderDiv: undefined | HTMLDivElement; - let areSuggestionsVisible = false; - - const editorInstance = { - // Mock monaco editor API - getContribution: jest.fn((id: string) => { - if (id === 'editor.contrib.suggestController') { - return { - widget: { - value: { - onDidShow: jest.fn((listener) => { - didShowListeners.push(listener); - }), - onDidHide: jest.fn((listener) => { - didHideListeners.push(listener); - }), - }, - }, - }; - } - }), - focus: jest.fn(), - onDidBlurEditorText: jest.fn(), - onKeyDown: jest.fn((listener) => { - keyDownListeners.push(listener); - }), - addContentWidget: jest.fn((widget: monaco.editor.IContentWidget) => { - placeholderDiv?.appendChild(widget.getDomNode()); - }), - applyFontInfo: jest.fn(), - removeContentWidget: jest.fn((widget: monaco.editor.IContentWidget) => { - placeholderDiv?.removeChild(widget.getDomNode()); - }), - getDomNode: jest.fn(), - // Helpers for our tests - __helpers__: { - areSuggestionsVisible: () => areSuggestionsVisible, - getPlaceholderRef: (div: HTMLDivElement) => { - placeholderDiv = div; - }, - onTextareaKeyDown: ((e) => { - // Let all our listener know that a key has been pressed on the textarea - keyDownListeners.forEach((listener) => listener(e)); - - // Close the suggestions when hitting the ESC key - if (e.keyCode === monaco.KeyCode.Escape && areSuggestionsVisible) { - editorInstance.__helpers__.hideSuggestions(); - } - }) as KeyboardEventHandler, - showSuggestions: () => { - areSuggestionsVisible = true; - didShowListeners.forEach((listener) => listener()); - }, - hideSuggestions: () => { - areSuggestionsVisible = false; - didHideListeners.forEach((listener) => listener()); - }, - }, - }; - - return editorInstance; -} - -type MockedEditor = ReturnType; - -export const mockedEditorInstance: MockedEditor = createEditorInstance(); - -// mock -const mockMonacoEditor = ({ - editorWillMount, - editorDidMount, -}: Record void>) => { - editorWillMount(monaco); - - // eslint-disable-next-line react-hooks/rules-of-hooks - useEffect(() => { - editorDidMount(mockedEditorInstance, monaco); - }, [editorDidMount]); - - return ( -
    -
    -